Jquery.load(), затем проанализируйте html

Я использовал строку ниже в своем приложении. Но теперь мне нужно разобрать html загруженный, прежде чем я его покажу. Каков наилучший способ получить определенные элементы html.

$("#div").load("page.html");

Спасибо

ОБНОВЛЕНО

Теперь я использую это, но мне трудно получить атрибут title div с id "div".

function get_title()
{
    $.get("test.html", function(data) {
        var data = $(data);
        var title = $("#div", data).attr("title");

        alert(title);
    });
}

html в данных var выглядит следующим образом.

<div id="div" title="title example">
<p>
    Content
</p>
<p>
    Content
</p>
</div>

Еще раз спасибо

Ответы

Ответ 1

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

$.get("page.html", function(data) {
  var data = $(data);
  //do something
  $("#div").html(data);
});

Обратите внимание, что вызов .html(data) в этом случае - это ярлык для .empty().append(data).


Или, если пост-обработка является опцией, просто используйте .load() обратный вызов, например:

$("#div").load("page.html", function() {
  $(this).find(".class").remove(); //just an example
});

Ответ 2

Вместо вызова .load() вы должны вызвать $.get для выполнения запроса AJAX и вручную обработать ответ.

Ответ 3

jQuery.ajax({
    url:'your_url',
    type:'get',
    dataType:'html',
    success:function(data)
   { 
       var _html= jQuery(data);
       //do some thing with html eg: _html.find('div').addClass('red')
       jQuery('#target').html(_html);
   }
});