получить значение идентификатора по индексу, используя имя jquery

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 используя имя?

Следующий фрагмент кода не работает

var getVal = $('[name="myText"]').index(1);
 gdoron09 июн. 2012 г., 22:48
У вас была опечаткаvat вместоvar, И вам лучше добавить tagName к селектору.

Ответы на вопрос(3)

Решение Вопроса

так что вы можете использовать оператор indexes ([]), чтобы получить элемент или получить объект jQuery, который оборачивает нужный элемент:eq(n) `.Eq (п)`

$('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
 09 июн. 2012 г., 22:41
@ShahidGhafoor. Это не так очевидно, селекторы CSS используют индекс 1-base ..."Note that since JavaScript arrays use 0-based indexing, these selectors reflect that fact. This is why $('.myclass:eq(1)') selects the second element in the document with the class myclass, rather than the first. In contrast, :nth-child(n) uses 1-based indexing to conform to the CSS specification."
 Shahid Ghafoor09 июн. 2012 г., 23:06
дорогой, но это код javascript (jquery). означает индексирование на основе 0 ;-) .. шучу @gdoron
 Shahid Ghafoor09 июн. 2012 г., 22:40
Индекс (1) означает, очевидно, второй

по индексу. Вы можете использовать селекторы, такие как: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.
 09 июн. 2012 г., 22:38
Этот ответ неверен..get() Функция возвращает фактический элемент DOM, поэтому вы не можете использовать jQuery.attr() функционировать на нем. Вы просто получите синтаксическую ошибку.
 09 июн. 2012 г., 22:38
get возвращает элемент DOM, а не объект jQuery ... Вы получите ошибку:TypeError: Object a has no method 'attr'
 Shahid Ghafoor09 июн. 2012 г., 22:43
.get () не работает
 09 июн. 2012 г., 22:46
У меня отлично работает. Посмотри на скрипку, которую я прикрепил.
 09 июн. 2012 г., 22:40
Исправленный. Мой мозг был в другом месте.

вы можете отфильтровать и использоватьattr метод, чтобы получить значение атрибута id.

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

Если вы хотите какой-то другой элемент, вы можете использоватьeq и выберите элемент в коллекции, начинающийся с нуля.

var getVal = $('[name="myText"]:eq(1)').attr('id'); // second id
 09 июн. 2012 г., 22:35
Он хочет второй элемент, а не первый.
 09 июн. 2012 г., 22:39
@dunsmoreb, но он также используетindex неправильно, что он не слишком напряжен, чтобы думать, что он также использует индексирование на основе 1. Я уточнил на всякий случай.
 09 июн. 2012 г., 22:36
@dunsmoreb. Как вы можете сказать?

Ваш ответ на вопрос