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 要素を配列のようにセットに保持するため、indexes operator( []) を使用して要素を取得したり、目的の要素を:eq(n)`.eq(n)`でラップした jQuery オブジェクトを取得したりできます。

$('input[name="myText"]:eq(1)').attr('id')

index(1)最初または 2 番目と考えられるものについて言及する必要があります。

$('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/

jQuery2 番目の方法は、結果オブジェクトを離れることはなく、1 つのステートメントで他の 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 に答える