找到动态加载的HTML页面的标题

时间:2014-01-02 05:47:55

标签: javascript jquery html html5 dom

我正在尝试动态加载内容(例如,当用户点击链接时,内容会在后台加载,而不是整个页面刷新)。

我无法弄清楚如何从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();
        }
    });

1 个答案:

答案 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节点更快一点