Извлечение данных возврата Ajax в jQuery

Я сделал jQuery и Ajax, но я не могу получить ответ в элемент Div. Это код:

Index.html

$.ajax({
    type:"POST",
    url: "ajax.php",
    data:"id="+id ,
    success: function(html){
        $("#response").html(data);
    }
});

Получает ответ на мой <div id="response"></div>.

ajax.php возвращает следующий код в файл index.html:

<div id ="one"> OneVal </div>
<div id ="sub"> SubVal </div>

Могу ли я извлечь OneVal и Subval в переменную, и как я могу извлечь "OneVal" и "SubVal" вместо ответа?

Ответ 1

Вы можете использовать .filter для объекта jQuery, который был создан из ответа:

success: function(data){
    //Create jQuery object from the response HTML.
    var $response=$(data);

    //Query the jQuery object for the values
    var oneval = $response.filter('#one').text();
    var subval = $response.filter('#sub').text();
}

Ответ 2

Измените .find на .filter...

Ответ 3

Я заметил, что ваша функция успеха имеет параметр "html", и вы пытаетесь добавить "данные" к своим элементам html()... Измените это так, чтобы оба они соответствовали:

$.ajax({
    type:"POST",
    url: "ajax.php",
    data:"id="+id ,
    success: function(data){
        $("#response").html(data);
    }
});

Ответ 4

Вы можете использовать json, как в следующем примере.

PHP code:

echo json_encode($array);

$array - данные массива, а код jQuery:

$.get("period/education/ajaxschoollist.php?schoolid="+schoolid, function(responseTxt, statusTxt, xhr){
    var a = JSON.parse(responseTxt);
    $("#hideschoolid").val(a.schoolid);
    $("#section_id").val(a.section_id);
    $("#schoolname").val(a.schoolname);
    $("#country_id").val(a.country_id);
    $("#state_id").val(a.state_id);
}

Ответ 5

Вы также можете использовать параметр jQuery контекст. Ссылка на документы

Контекст селектора

По умолчанию селекторы выполняют свои поиски в начале DOM в корне документа. Однако альтернативный контекст может быть задан для поиск с использованием необязательного второго параметра для функции $()

Поэтому вы также можете:

success: function(data){
    var oneval = $('#one',data).text();
    var subval = $('#sub',data).text();
}

Ответ 6

по успеху: function (response) {alert (response.d); }