1

更新:

让我重述一下。

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

有什么想法吗?再次感谢!

4

3 回答 3

1

getElementsByTagname 是错误的函数。

没有简单的方法来做你想做的事,除非你求助于第三方库,比如 jQuery。

使用 jquery,您可以使用以下代码:

$('img.yes').each(function() {
   console.log(this);
});

这是您尝试做的一个工作示例:http: //jsfiddle.net/ZYBp6/

于 2013-05-13T13:11:22.413 回答
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 通常生成的那种“元素”。

于 2013-05-13T13:11:45.363 回答
0

这似乎有效:

function function(x) {
  $(x).find('.yes').attr('src','differentimage.png');
}
于 2013-05-13T13:57:17.667 回答