HTML
<input id="1" name="myText" type="text" value="20"/>
<input id="2" name="myText" type="text" value="30"/>
<input id="3" name="myText" type="text" value="40"/>
如何使用名称index
获取ID值?
以下代码段不起作用
var getVal = $('[name="myText"]').index(1);
答案 0 :(得分:10)
jQuery将DOM元素保存在集合中,就像数组一样,因此您可以使用索引运算符([]
)来获取元素,或者获取用:eq(n)
包装所需元素的jQuery对象。 .EQ(N)'
$('input[name="myText"]:eq(1)').attr('id')
你应该提到你认为index(1)
的第一个或第二个:
$('input[name="myText"]:eq(0)').attr('id') // First
$('input[name="myText"]:eq(1)').attr('id') // Second
或者:
$('input[name="myText"]')[0].id // First
答案 1 :(得分:4)
如果您想要第一个值,可以过滤并使用attr
方法获取id属性的值。
var getVal = $('[name="myText"]:first').attr('id'); // first id
如果您想要其他元素,可以使用eq
并在集合中选择从零开始的元素。
var getVal = $('[name="myText"]:eq(1)').attr('id'); // second id
答案 2 :(得分:2)
我的回答是指通过索引访问jQuery结果对象中的元素。您可以使用其他答案中指示的:eq
等选择器。
但是,您可以使用.get(1)
代替index
。
var id = $('[name="myText"]').get(1).id;
相当于
var id = $('[name="myText"]:eq(1)').attr('id');
示例:http://jsfiddle.net/HackedByChinese/UmKw6/1/
第二种方法是首选路由,因为它意味着你永远不会离开jQuery
结果对象,因此可以在一个语句中链接其他jQuery调用。
var id = $('[name="myText"]:eq(1)').css('color', 'red').attr('id'); // example of chaining jQuery methods. sets the text color to red and then returns the id.