2010-05-21 5 views
2

Я пытаюсь выбрать идентификаторы динамических полей ввода в моем коде. При нажатии на кнопку, форма будет создать поле формы, как это:Выбор правильного поля ввода с помощью jquery

<td><input type="text" id="field_a_1"></td> 
<td><input type="text" id="field_b_1"></td> 
<td><input type="text" id="field_c_1"></td> 

Когда я нажимаю на кнопку еще раз, я получаю это:

<td><input type="text" id="field_a_2"></td> 
<td><input type="text" id="field_b_2"></td> 
<td><input type="text" id="field_c_2"></td> 

То, что я хочу сделать, это выбрать только поле идентификатор, что мне нужно, чтобы вытащить значение из этого конкретного входа и передать его в переменной, как это:

var example = $(":input:eq(0)").val(); 

Я знаю, что, добавив :eq(0) после :input выберите или он будет только захватить id для field_a_1, так как я могу настроить его так, чтобы я мог вытащить только поле, которое мне нужно, чтобы присвоить его переменной?

+2

Ваш вопрос немного запутанный ... ваши динамические изменения изменяются нажатием кнопки? Вы пытаетесь настроить таргетинг только на поле ввода 1-го, 2-го и т.д. после каждого нажатия кнопки? – Mottie

+0

Возможно, вы могли бы немного изменить формулировки для уточнения желаемого «вытащить только поле, которое мне нужно присвоить переменной», и «выбрать только идентификатор поля, который мне нужно, чтобы вывести значение из этого конкретного ввода», немного удивляться. –

+0

fudgy, я хотел сказать, что когда я снова нажимаю кнопку, я получаю новый набор входов с новыми идентификаторами. Первый набор в примере представляет одну строку таблицы. Второй набор представляет собой новую строку таблицы и не изменяет первую строку. Поэтому, когда я нажимаю кнопку, я получаю новую строку таблицы, которая будет увеличивать число в именах идентификаторов. Мне нужно было вычислить значения каждой строки по отдельности, поэтому нужно иметь возможность выбирать правильный идентификатор для каждой строки. Вы должны будете простить меня, так как я новичок в jquery. – rshivers

ответ

1

Это то, ради чего ID. Таким образом, вы можете выделить определенный элемент.

$('#field_b_2').val(); // Will return the element with that ID. 

# указывает на то, что вы ищете для элемента с идентификатором, в отличие от ., которые выглядят бы для элемента (или элементов) с классом:

$('.someClass').val(); // Will return elements with that class 

Пожалуйста, помните, что идентификаторы не могут быть разделены между элементами. Только один элемент может иметь определенный идентификатор.

С другой стороны, классы могут быть разделены между таким количеством элементов, сколько вам нужно.

+0

Да, это то, что я искал. Благодаря! – rshivers

+0

+1 - Это, наверное, то, что он ищет с классом, но я не могу сказать из этого вопроса. –

0

Если вы хотите только идентификатор элемента, который вы должны сделать:

var example = $(":input:eq(0)").attr("id"); 

И тогда вы можете получить доступ к области позже с:

$("#" + example).show(); //or whatever you want to do 
+0

Вы можете просто выполнить 'var example = $ (": input ").attr ("id"); ':) –

+0

, но ему нужно выбрать конкретный индекс. Если ему нужно что-то, кроме первого, ваш код не будет работать. – Malfist

+0

Поскольку вы не передаете переменную в ': eq (0)', это не относится к точке :) Но да, то, что я разместил, - это скорее быстрый ярлык для вашего * определенного * размещенного кода. –

0

ваших входных идентификаторов сохранить изменения, как: Когда вы нажмете первый раз, все будет: field_a_1, field_a_2 и т. Д.

вы просто используете это для получения правильных значений.

$('input[id^=field_]').each(function(){ 
    alert($(this).val()); 
}); 
Смежные вопросы