2016-01-17 72 views
2

这个问题已经被问过,但我仍然没有得到答案
问题是如果元素包含文本,添加类。但是有两个同级的元素。
对于实例向最近的孩子添加班级

<div class="xyz">123</div> 
<div class="add">...</div> 


<div class="xyz"></div> 
<div class="add">...</div> 

为什么犯规这项工作?

if ($('div.xyz:contains("123")').length > 0) { 
$(this).next(".add").addClass("long"); 
} 
+1

我不认为'$(这)'是引用你怎么想的在这种情况下。 – CollinD

+0

那么应该是什么? –

+0

只需删除您的条件,并用您的选择器替换'this'。或者甚至更好,每Anik的答案使用'each'函数。 – CollinD

回答

5

尝试这样

$('div.xyz:contains("123")').each(function(){ 
    $(this).next(".add").addClass("long"); 
}) 

DEMO

+0

感谢作品完美:) –

0

简体版本也应该工作

$('div.xyz:contains("123") +.add ').addClass("long");