Подтвердить что ты не робот

Выбор jQuery с динамическим идентификатором

У меня есть форма, которая динамически генерируется и имеет динамически генерируемый id (и потенциально классы). Формы одни и те же, но у них есть связанный идентификатор до конца.

Как я могу выбрать каждый набор входов и применить код к каждому?

Я экспериментировал с $('input [id ^ = @id_airline_for_]'), но не мог заставить его летать. Я подозреваю, что упускаю некоторые фундаментальные знания jQuery, которые удерживают меня, так как я уверен, что это общая проблема с динамическими формами.

<form method='POST'>
    <label for="id_airline_for_8">Airline</label>:
    <input id="id_airline_for_8" class="arrival_transfer_toggle_8" type="text" maxlength="30" name="airline_for_8"/>
    <label for="id_flight_number_for_8">Flight Number</label>:
    <input id="id_flight_number_for_8" class="arrival_transfer_toggle_8" type="text" maxlength="30" name="flight_number_for_8"/>

    <label for="id_airline_for_17">Airline</label>:
    <input id="id_airline_for_17" class="arrival_transfer_toggle_17" type="text" maxlength="30" name="airline_for_17"/>
    <label for="id_flight_number_for_17">Flight Number</label>:
    <input id="id_flight_number_for_17" class="arrival_transfer_toggle_17" type="text" maxlength="30" name="flight_number_for_17"/>

    -- snip --

</form>

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

Чтобы упростить, скажем, я хочу, чтобы все входы с совпадающим идентификатором в конце #id исчезали при щелчке (только для аргументов).

4b9b3361

Ответ 1

$("input[id^='id_airline_for_']").each(function() {
  var id = parseInt(this.id.replace("id_airline_for_", ""), 10);
  var airline = $("#id_airline_for_" + id);
  var flightNumber = $("#id_flight_number_for_" + id);
  // do stuff with airline and flightNumber <input>s
});

Ответ 2

Вы можете использовать $("input#id_airline_for" + id) (где id - ваш номер, например, 8), но он будет быстрее, если вы отпустите имя тега и просто используйте:

$("#id_airline_for" + id);

Ответ 3

Ниже вы получите все входы, содержащие id_airline_for в их имени.

$("input[id^='id_airline_for']")

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

$("#formJetBlue input[id^='id_airline_for']")
$("#formNwa input[id^='id_airline_for']")
$("#formOceanic input[id^='id_airline_for']")

Ответ 4

Я не думаю, что вы должны использовать знак @, и вам не хватает некоторых цитат:

Вместо этого: $ ( 'Вход [ID = @id_airline_for _]')

попробуйте следующее: $ ( "Вход [ID = 'id_airline_for _']" )

Смотрите также:

http://docs.jquery.com/Selectors/attributeStartsWith#attributevalue

Ответ 5

Выбирает элементы с указанным атрибутом со значением, содержащим заданную подстроку

$('input[id *= id_airline_for]').attr('checked', headerChecked);

он выберет все элементы, содержащие строку "id_airline_for" в атрибуте "id"