2017-11-18 129 views
0

如何使用jQuery選擇值爲2的元素,如果它們都具有相同的名稱和ID?選擇具有不同值但類似ID的元素

<input type="radio" id="store" name="store" value="1"> 
    <input type="radio" id="store" name="store" value="2"> 
    <input type="radio" id="store" name="store" value="3"> 

jQuery的,沒有工作:

$('#store:input[type="radio", value="2"]').html(); 
+0

__你應該只有一個ID__ - 你應該做你正在嘗試用類來做的事情... – Sam

+1

有時你不能控制HTML。在這些情況下,您可以使用@ reski的解決方案。 –

+1

我知道,但我正在嘗試爲某個網站創建自動填充功能,並且此處的開發人員以這種方式命名了所有內容。 – feedammo

回答

0

jQuery的選擇器引擎無法處理它,但在修復選擇器後,您可以使用原生querySelector代替。

const v = document.querySelector('input#store[type="radio"][value="2"]').outerHTML; 
 

 
console.log(v);
<input type="radio" id="store" name="store" value="1"> 
 
<input type="radio" id="store" name="store" value="2"> 
 
<input type="radio" id="store" name="store" value="3">

querySelectorquerySelectorAll不在乎唯一ID的HTML要求。他們獲取頁面上的所有匹配。

另外,.html()沒有意義的input,所以我打印它的.outerHTML instead

+0

Thanls @rock明星,我可以在哪裏獲得更多關於選擇器的資源? – feedammo

+0

@feedammo:幾乎所有的CSS選擇器教程,因爲他們使用CSS選擇器。 – 2017-11-18 15:20:05

+0

非常感謝你@rock明星,你爲我節省了很多時間。^_^ – feedammo

1

您不容應該只有在頁面上任何給定#ID的一個實例。

1

閱讀關於multiple attribute selector

這應該工作: $('#store:input [type =「radio」] [value =「2」]')。html();

+0

由於某些原因,'#store:input'只會返回第一個元素,所以它不會選擇它 - 'input#store [type ='radio'] [value ='2']'雖然 – Sam

相關問題