изменив ajax возвращенные данные перед отображением - PullRequest
0 голосов
/ 07 апреля 2010

Я обрабатываю форму подписки с помощью jQuery / ajax и должен отображать результаты с функцией успеха (они различаются в зависимости от того, существует ли электронная почта в базе данных).Но дело в том, что мне не нужен h2 и первый тег "p".

Как мне показать только div # alertmsg и второй тег "p"?

Я пытался удалить ненужные элементы с помощью метода, описанного здесь , но это не сработало.

Вот мой код:

var dataString = $('#subscribe').serialize();

$.ajax({
    type: "POST",
    url: "/templates/willrock/pommo/user/process.php",
    data: dataString,
    success: function(data){
    var result = $(data);
    $('#success').append(result);
}

Вот возвращенные данные:

<h2>Subscription Review</h2>

<p><a href="url" onClick="history.back(); return false;">
<img src="/templates/willrock/pommo/themes/shared/images/icons/back.png" alt="back icon"
     class="navimage" /> Back to Subscription Form</a></p>

<div id="alertmsg" class="error">

<ul>
<li>Email address already exists. Duplicates are not allowed.</li>
</ul>

</div>

<p><a href="login.php">Update your records</a></p>

1 Ответ

4 голосов
/ 07 апреля 2010

Вы можете использовать контекстную часть оператора $(), например:

var dataString = $('#subscribe').serialize();

$.ajax({
    type: "POST",
    url: "/templates/willrock/pommo/user/process.php",
    data: dataString,
    success: function(data){
      var result = $(data);           
      $("h2, p:first", result).remove();
      $('#success').append(result);
    }
});

Это ищет <h2> и первое <p> из ответа и удаляет их перед добавлением. Контекст по умолчанию (элемент для просмотра) - document, поэтому, когда вы звоните $("h2"), вы на самом деле звоните $("h2", document) (который на самом деле вызывает $(document).find("h2")) ... вы также можно поместить что-то нестандартное, в данном случае ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...