Что такое jQuery-эквивалент для document.forms [0] .elements [i] .value ;? - PullRequest
6 голосов
/ 20 июля 2010

Что такое jquery эквивалентно: document.forms[0].elements[i].value;?

Я не знаю, как перемещаться по форме и ее элементам в jQuery, и хотел бы знать, как это сделать.

Ответы [ 5 ]

14 голосов
/ 20 июля 2010

Обычный перевод - селектор :input:

$("form:first :input").each(function() {
  alert($(this).val()); //alerts the value
});

:first потому, что ваш пример тянет первый <form>, если есть только один или вы хотите все входные элементы, просто снимите :first. Селектор :input работает для <input>, <select>, <textarea> ... всех элементов, которые вам здесь обычно нужны.

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

1 голос
/ 20 июля 2010

Ну, в буквальном переводе это будет:

$('form:first *:nth-child(i)').val()

Но jQuery позволяет легко захватывать элементы другими способами, такими как ID или селектор CSS.Было бы легче поддерживать, если бы вы сделали что-то вроде:

$('form#id input.name').val()
0 голосов
/ 20 июля 2010

Это даст вам все элементы в форме.Включая элементы неформальной формы:

$("#[form id]").find()

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

$("#[form id] :input")
0 голосов
/ 20 июля 2010
$("#formid input").each(function(){
    alert($(this).attr("value"))
})  
0 голосов
/ 20 июля 2010

Я не совсем уверен, что вы пытаетесь достичь, но вы должны быть в состоянии сделать что-то вроде этого:

$('form:first').children(':first').val();

Это получит значение первого дочернего узла в первом<form> тег в DOM.

...