2012-05-07 31 views
1

我想用jQuery来搜索一个元素是否包含特定的单词,如果有,我想对该特定元素执行一些jQuery代码。如果元素包含字X执行Y

关于我如何完成此任何想法?

例子:

if $('div').contains('Bird'){ 

     ****execute jquery***** 

} 

标记

<div>Dog x y z </div> 
<div>Cat x y z </div> 
<div>x y z Bird</div> 
<div>x y z Fish</div> 

我试了一下:

if ($("#producttabs2 #producttabs ul li a").has('iPhone App')) { 
    $(this).css("border","1px solid red"); 
} 
+0

检查原职。谢谢;) – AnchovyLegend

回答

4

使用过滤器:

$('div').filter(function() { 
    return this.innerHTML.indexOf(somestring) !== -1; 
}).css("border","1px solid red"); 
+0

+1为最灵活的解决方案。 –

3
if ($('div').is((':contains("bird")')) 
// code here 

你想要:contains selector

+0

请注意:如果匹配选择器'div'的__any__元素包含该文本,则.is()将返回true。使用:contains是一个很好的选择(虽然可能表现不那么好),但如果OP想要将css应用于div的子集,最好使用.filter()。否则,即使一个div符合条件,页面上的每个div都将获得css。 – benastan

1

简单的jQuery:

$('div').each(function() { 
    if($(this).text().indexOf('Bird') != -1) { 
    //do something 
    } 
}); 

jsFiddle example

+0

+1好消息..打败我吧。 –

0
$('div').filter(function() { 
    return this.innerHTML.match(/bird/ig); 
}).css({ 
    border: '1px solid #f00' 
}); 

DEMO

相关问题