var theHTML = '<html><head><title>Hi</title><link rel="apple-icon-touch-precomposed" href="icon.jpg" /></head><body></body></html>';
alert($(theHTML).find('link[rel="apple-icon-touch-precomposed"]').attr('href'));
它警告“未定义”。我希望它返回“icon.jpg”。怎么了?
var theHTML = '<html><head><title>Hi</title><link rel="apple-icon-touch-precomposed" href="icon.jpg" /></head><body></body></html>';
alert($(theHTML).find('link[rel="apple-icon-touch-precomposed"]').attr('href'));
它警告“未定义”。我希望它返回“icon.jpg”。怎么了?
尝试这个:
alert($(theHTML).filter('link[rel="apple-icon-touch-precomposed"]').attr('href'));
也就是说,使用.filter()
而不是.find()
.
演示:http: //jsfiddle.net/WmwRU/
如果你这样做,console.log($(theHTML))
你会明白为什么。
我不知道你想要它做什么,但如果你使用它filter()
而不是find()
它会按你想要的方式工作:
var theHTML = '<html><head><title>Hi</title><link rel="apple-icon-touch-precomposed" href="icon.jpg" /></head><body></body></html>';
alert($(theHTML).filter('link[rel="apple-icon-touch-precomposed"]').attr('href'));
我不确定您是否可以使用.find
这种方式,我必须阅读有关它的 API。但是,您可以尝试.prop('href')
代替.attr('href')
. 如果这不起作用,我还建议*
在=
like之后使用link[rel=*"apple-icon-touch-precomposed"]