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);
}
});