2011-09-08 101 views
19

我有如下因素選擇jQuery選擇,包含等於

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
              .find("option:contains('LIKE')"); 

這個檢查其包含「喜歡」右邊的字的選項?

我如何找到一個選項是正好單詞'like'?

財產以後這樣的:

 var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
              .find("option:equals('LIKE')"); 

回答

23

只需選擇從select所有選項和由text()值過濾它們:

var likeComperssionOption = $('select[id*=ComparisionType]:first option').filter(function() { return $(this).text() == "LIKE" }); 
+0

它沒有工作。 「like」在文本中。當我使用警報顯示 警報(如ComperssionOption.val())的值時;我弄不明白。 但是,當我使用「conatins」(如在問題中)相同的警報顯示「3」 –

+0

不能看到任何問題:http://jsfiddle.net/dSKjy/ –

+0

它的工作,謝謝。我對空間「喜歡」,這就是爲什麼它不適合我。是否有修剪功能? –

2

如果您想根據選項的value屬性來選擇,你需要使用attribute equals selector選擇具有特定值的元素爲他們value屬性:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
          .find("option[value='LIKE']") 

否則,要根據選項的顯示文字進行選擇,請使用:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0) 
          .find("option").filter(function() { 
           return $(this).text() == 'LIKE'; 
          }); 

更新:您的初始選擇器可能有些問題,看起來很奇怪。你或許應該改變

$('select[id*=ComparisionType]').eq(0) 

簡單的東西像

$('#ComparisionType') 

這個答案的概念工作得很好,你可以see it in action here

+0

我可以有值= 「1」 和文本= 「喜歡」:'<選項值= 「1」> LIKE' –

+0

它沒有工作。 「like」在文本中。當我使用警報顯示 警報(如ComperssionOption.val())的值時;我弄不明白。 但是,當我使用「conatins」(如在問題中)相同的警報顯示「3」 –

+0

@Aharon:它適用於我。查看我的更新並查看鏈接。 – Jon