2017-11-18 131 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

相关问题