Jquery:从变量中查找HEAD标记内的元素

时间:2017-01-19 15:35:30

标签: javascript jquery

想知道如何使用Jquery从变量'x'中找到HEAD标记内的'link'元素?

尝试过,但代码下方无效。

var x = "<html><head> <link> I'm inside head tag </link> </head></html>";

var y = $('<div>' + x + '</div>');

y.find('head')[0].html();

alert(y);

2 个答案:

答案 0 :(得分:0)

获取innerHTML属性,因为索引0返回DOM对象或直接在jQuery对象上应用html()方法。

虽然您无法直接解析包含HEAD or BODY标记的HTML字符串(这会避免使用这些元素,因为它不能成为div元素的子元素)所以您需要对它进行处理作为XML。要解析XML使用$.parseXML(),结果将是一个节点数组,现在通过简单地使用jQuery包装转换为jQuery对象,然后完成剩下的工作。

&#13;
&#13;
var x = "<html><head> <link> I'm inside head tag </link> </head><body></body></html>";

// parse the string as XML and generate XML document
// and wrap using jQuery to generate jQuery object from it
var y = $($.parseXML(x));

// get DOM object by index and get html content
var a = y.find('head')[0].innerHTML;
// or use jQuery method to get content
var b = y.find('head').html();

console.log(a, b)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

<小时/> 请参阅:Parsing of html string using jquery

答案 1 :(得分:0)

如果您需要从文档标题中找到链接,可以使用此选择器

$('head link')

但是,如果你需要从变量中找到标题内的链接元素,你可以这样做

var x = "<html><head> <link> I'm inside head tag </link> </head></html>";
$(x).filter( function (i,a){ return $(a).is('link');});