所有兄弟姐妹的getElementsByTagName

时间:2013-05-13 13:05:00

标签: getelementsbytagname getelementsbyclassname

更新:

让我重新说一下。

我有多个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也没有。

有什么想法?再次感谢!

3 个答案:

答案 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');
}