2012-05-07 30 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

相關問題