想知道如何使用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);
答案 0 :(得分:0)
获取innerHTML
属性,因为索引0
返回DOM对象或直接在jQuery对象上应用html()
方法。
虽然您无法直接解析包含HEAD
or BODY
标记的HTML字符串(这会避免使用这些元素,因为它不能成为div元素的子元素)所以您需要对它进行处理作为XML。要解析XML使用$.parseXML()
,结果将是一个节点数组,现在通过简单地使用jQuery包装转换为jQuery对象,然后完成剩下的工作。
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;
<小时/> 请参阅: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');});