4

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);
4

3 回答 3

10

jQuery 像数组一样保存集合中的 DOM 元素,因此您可以使用索引 operator( ) 来获取元素,或者使用`.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
于 2012-06-09T20:33:30.913 回答
4

如果要第一个值,可以过滤,使用attr方法获取id属性的值。

var getVal = $('[name="myText"]:first').attr('id'); // first id

如果您需要其他元素,您可以使用eq并选择集合中从零开始的元素。

var getVal = $('[name="myText"]:eq(1)').attr('id'); // second id
于 2012-06-09T20:33:14.270 回答
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.
于 2012-06-09T20:32:59.597 回答