我正在遍历元素并抓取该元素的子元素的src
属性。我有这个HTML代码:
<noscript data-alt="super awesome">
<img src="http://farm9.staticflickr.com/8235/8585847956_39864361e3.jpg" alt="something" />
</noscript>
<noscript data-alt="super awesome">
<img src="http://farm9.staticflickr.com/8235/8585847956_39864361e3.jpg" alt="something" />
</noscript>
和jQuery:
$('body').children().each(function() {
var noscriptTag = $(this)[0];
var imgAlt = noscriptTag.getAttribute("data-alt");
var img_src = noscriptTag.find('img');
var img_regular = img_src.getAttribute("src");
console.log(img_regular);
});
但是我收到了这个错误:
Uncaught TypeError: Object #<HTMLElement> has no method 'find'
我还尝试了各种其他组合(例如$(this).find('img');
)而没有让它发挥作用。
以下是演示:http://jsfiddle.net/LjWhw/
如何定位该元素的img
标记?谢谢!
更新:您无法使用JavaScript定位<noscript>
内的元素。
答案 0 :(得分:3)
您正在尝试在DOM对象上调用find jQuery函数,使用jQuery
对象而不是DOM
javascript对象来调用find。
更改
var noscriptTag = $(this)[0];
到的
var noscriptTag = $(this);
修改:您还需要相应地更改代码,例如img_src.getAttribute("src");
至img_src[0].getAttribute("src");
或img_src.attr("src");
答案 1 :(得分:0)
我建议你这样做:
$('body').children().each(function() {
var noscriptTag = $(this).find('noscript').first();
//---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----this way
var imgAlt = noscriptTag.getAttribute("data-alt");
var img_src = noscriptTag.find('img');
var img_regular = img_src.attr("src");
console.log(img_regular);
});
答案 2 :(得分:0)
试试这个
$('noscript').each(function () {
var noscriptTag = $(this);
var imgAlt = noscriptTag.attr("data-alt");
var img_src = noscriptTag.children('img');
var img_regular = img_src.attr("src");
alert(imgAlt);
});