2017-06-02 80 views
0

選擇元素在jQuery中,爲什麼$("#myid").val()返回選擇元素的值,但$("select[value='abcd']")沒有發現有ABCD的值的選擇元素?我怎麼做後者 - 找到一個值爲'abcd'的所有選擇元素?jQuery的發現由值

編輯:我設法檢索與解決方法的選擇元素ID:我增加了選擇的id作爲其所有選項的屬性。然後我用:$( 「選項[值= ABCD]:選擇了」),以找到的ABCD的值的所有選擇的選項和最後$(本).attr( 「myAttr」)。每個內(函數(){})獲取ID。

有沒有更好的方法來做到這一點?

回答

0

其實,沒有爲select標籤沒有value屬性,所以它不會選擇。您可以使用jQuery :has()僞類選擇或has()方法來獲取其中包含與特定屬性值選項標籤選擇標籤。

$("select:has([value='abcd'])") 
// or 
$("select").has("[value='abcd'])") 
// or 
$("select [value='abcd']").parent() 


UPDATE:如果要選擇與所選值的所有選擇標籤 abcd然後使用 filter()方法。

$("select").filter(function(){ 
    return this.value == 'abcd'; 
}) 
+0

遺憾的是沒有這些解決方案爲我工作,所以我會繼續使用我的自定義屬性。謝謝 – lindAt

+0

@lindAt:你想達到什麼目的? –

+0

我已經有了值,現在我想要找到具有該值的select元素的ID – lindAt

0

你可以用下面的方法來獲得選擇的值

$( 「#id選項:選擇」)。VAL();

+0

這是錯誤的方式 - 我已經有了價值,現在我想要具有值的select元素的id。 – lindAt

+0

var id = $(「#mySelect」)。children(「:selected」)。attr(「id」); –