2013-06-22 58 views
1

我试图在元素后面添加一个类给所有标签。这意味着我不想为每个img-tag添加一个类,但只有在“trow1”之后出现的类。在所有元素上使用.addClass()jQuery

<td class="trow1" 
<img src="somesite.com"> 
</td> 
<td class="trow1" 
<img src="somesite.com"> 
</td> 

我可以这样做:

$("td.trow1").find('img').addClass('myClass'); 

但它只会将该类添加到第一IMG标签。

+1

这将增加所有实例..貌似这不是一个问题。该问题是与'HTML'。检查这个http://jsfiddle.net/D4zS4/ –

+2

您的td标记未关闭 – Musa

+0

其中一个这里的时刻 – GriffLab

回答

2

看起来像一些格式不正确的HTML可能会导致一个问题。

$("td.trow1").find('img')是加载选择器的'首选'方式,因为它实际上比将其填充到一个选择器调用(由于sizzle引擎需要正则表达式进行分析)更加高效。

+0

不错,但他的jQuery代码也在工作,问题在于HTML ...所以你的答案不解决问题 – Shaddow

+1

你的代码和OPs代码实际上是一样的。 '$('a b')'选择与$('a')相同的结果find('b')' –

+0

答案已更新以防止混淆 – Brombomb

2

你能做这样的事吗?我假设你只有一个图像trow1 td

$("td.trow1 img").addClass('myClass'); 

也像其他人所提到的。确保您的标签正确关闭。这可能会搞乱选择器。注意>支架后class="trow1"

<td class="trow1"> 
<img src="somesite.com"> 
</td> 
<td class="trow1"> 
<img src="somesite.com"> 
</td>