更新:
让我重新说一下。
我有多个div,其中包含一个带有class =“yes”的img元素。但他们并非都是兄弟姐妹。
两个例子:
<div id="div1" onclick="function(this)">
<img src="image1" />
<div>
<img src="image2" class="yes" />
</div>
</div>
<div id="div2" onclick="function(this)">
<img src="image3" class="yes" />
</div>
现在我正在尝试为两个div制定一个函数,它将使用类yes更改图像的来源。
getElementsByTagName似乎没有这个技巧,getElementsbyClassName也没有。
有什么想法?再次感谢!
答案 0 :(得分:1)
getElementsByTagname是错误的函数。
没有简单的方法可以做你想做的事情,除非你求助于第三方库,比如jQuery。
使用jquery,您可以使用以下代码:
$('img.yes').each(function() {
console.log(this);
});
以下是您尝试执行的操作示例:http://jsfiddle.net/ZYBp6/
答案 1 :(得分:1)
您可以像这样使用jQuery:
function some_function(x)
{
var arr = $("#" + x.id + " .yes"); // Gets all children of the class "yes"
}
或者如果你只想获得img元素,你可以这样做:
function some_function(x)
{
var arr = $("#" + x.id + "img.yes");
}
在这两个示例中,arr将包含DOM元素,而不是jQuery通常生成的“元素”类型。
答案 2 :(得分:0)
这似乎有效:
function function(x) {
$(x).find('.yes').attr('src','differentimage.png');
}