我正在尝试动态加载内容(例如,当用户点击链接时,内容会在后台加载,而不是整个页面刷新)。
我无法弄清楚如何从jQuery.parseHTML
返回的DOM元素中获取标题。 API文档声明它使用本机DOM元素创建函数将字符串转换为一组DOM元素,然后可以将其插入到文档中。"
以下代码未获得"标题"集合中的节点。当我查看chrome调试器控制台中的列表时,我看到列表,格式化为数组中的每个元素显示为[#: type]
(例如[1: title]
,因为标题节点是此示例中的第二个元素) 。我可以在那里看到它,并在调试器中单击它,但无法从我的代码中以逻辑方式弄清楚如何访问它。
有人可以帮忙吗?
$('#mainContent').load(url, function (response, status) {
if (status != "success") {
$('#mainContent').hide();
$('.notFound').show();
document.title = getTitle("Page Not Found");
}
else {
var title = jQuery.parseHTML(response)['title'].innerText;
title = getTitle(title); //does some validation on the input (e.g. not blank, etc).
document.title = title;
$('#mainContent').show();
}
});
答案 0 :(得分:3)
这应该有效(你可能需要将TITLE改为标题):
$.each( jQuery.parseHTML(response), function( i, el ) {
if(el.nodeName === "TITLE") {
title = $(el).html();
return false; // break out of the each loop
}
});
编辑:小的更改应该使大量的DOM节点更快一点