Как вернуть n-е значение <input> в jQuery?

Если есть только один элемент ввода, я могу использовать:

$("input").val()

Я знаю, что .val() возвращает значение атрибута value первого совпадающего элемента.

Но что, если есть несколько входов?

вам, вероятно, придется зациклить их или найти способ более конкретно определить его.

ADyson 18.04.2018 14:51

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

BoffinBrain 18.04.2018 14:55

@Maor P, пожалуйста, мой ответ, я думаю, это подходит для того, что вы ищете

Christophe Debove 18.04.2018 15:03

@BoffinbraiN Мне нужно назначить их разным переменным и проделать с ними всевозможные арифметические операции

Maor P 18.04.2018 15:06

@ChristopheDebove Спасибо!

Maor P 18.04.2018 15:15
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
2
5
222
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

$("form").each(function(){
$(this).find(':input') //<-- Should return all input elements in that specific form.
});

Самый простой способ - найти каждое значение в цикле:

 $('input').each(function(i, value){
      // i = index value for each input
      // value = actual value 
 })

// значение = фактическое значение не соответствует действительности

b3nc1 18.04.2018 15:00

Вы должны использовать псевдокласс css :nth-child, а затем получить первый элемент https://developer.mozilla.org/fr/docs/Web/CSS/:nth-child

var element = $("input:nth-child(5n)").first();
$('input').each(function(i, inputElement){
     console.info($(inputElement).val());
 })

второй параметр не является значением inputElement, вам нужно снова обернуть его в $ () для работы с .val ()

В случае нескольких совпадений jQuery вернет массив совпадающих элементов (отсчитываемый от нуля).

Поэтому, если вы специально хотите получить доступ к значению 2-го входного элемента, вы можете сделать это следующим образом:

$("input")[1].value

Обратите внимание, что здесь вы обращаетесь к массиву элементов DOM, а не к объектам jQuery, поэтому вы не можете использовать .val(), но должны использовать свойство value элемента.

Чтобы получить объект jQuery n-го элемента, вы можете использовать селектор jQuery: eq () следующим образом:

$("input:eq(1)").val()

https://api.jquery.com/eq-selector/

Ответ принят как подходящий

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

Я бы посоветовал вам использовать подход на основе имени или идентификатора к вашим полям формы, чтобы каждое из них служило четкой цели и могло быть легко найдено с помощью jQuery. Если у ваших полей формы уже есть имена (а они должны быть, если вы используете традиционную HTML-форму с помощью GET или POST), вы можете их использовать. Вы также можете дать им уникальные идентификаторы.

<input name = "Input1" id = "MyInput1" value = "" >
<input name = "Input2" id = "MyInput2" value = "" >
var input1 = $("#MyInput1").val(); // Get by ID
var input2 = $("[name=Input2]").val(); // Get by input's name

Если у вас есть несколько форм на страницу, то передовая практика снова немного изменится, но я уточню это, только если вам это нужно.

Я надеюсь, что это поможет вам увидеть более широкую картину и развить лучшие формы.

Согласовано. Мой ответ очень специфичен для вопроса о получении значения по порядковому номеру, но хороший дизайн должен назначать значимые уникальные идентификаторы ключевым элементам.

beercohol 18.04.2018 16:21

Просто и эффективно. Спасибо

Maor P 18.04.2018 18:35

Другие вопросы по теме