Как добавить элементы DOM в массив Jquery и зациклить их? - PullRequest
1 голос
/ 02 сентября 2011

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

Может быть, будет проще объяснить простым кодом, что я пытаюсь сделать;

<script>
test1       = $('input:text[name=test1]');
test2       = $('input:text[name=test2]');
test3       = $('input:text[name=test3]');

var obj = [];
obj.push(test1);
obj.push(test2);
obj.push(test3);

$.each(obj, function(key, value) {
    console.log ('value : ' + value.val());
});

</script>
</head>

<body>
<input name="test1" type="text" value="1"/>

<input name="test2" type="text" value="2"/>

<input name="test3" type="text" value="3"/>
</body>
</html>

Я пытаюсь сделать следующее:

  1. Определить переменные, которые будут назначены элементу DOM.
  2. Создать массив и поместить эти переменныекоторые назначены элементам DOM.
  3. Зацикливание их и получение их значений и т. д. *

Есть ли способ сделать это?Я очень устал после попытки заставить его работать часами.

Спасибо за вашу помощь и заранее.

РЕДАКТИРОВАТЬ:

OfКонечно, приведенный выше код не был тем, чего я пытался достичь.У меня есть форма, содержащая более 700 строк кода Jquery, и у меня возникла проблема с одной из моих функций.

Принцип был таким же, поэтому я решил сделать что-то действительно коротким и понятным.$ value был просто неудачным копированием и вставкой.Прежде чем я понял, что я не удалил весь свой старый код (просто осталось $ ) и отредактировал свой пост, некоторые люди уже ответили.Это не был правильный ответ, но я просто не хотел закрывать вопрос, не давая никому очки.

Приведенный выше код не будет работать, если вы не измените его на;

$(document).ready(function(){
 // Put the code here
});

Учитывая, что мой код jquery находится между <head> </head> Я должен использовать $(document).ready

Надеюсь, это кому-нибудь поможет.

Я не новичок в Jquery, я не знаюпочему и как я мог совершить такую ​​ошибку.

Ответы [ 4 ]

2 голосов
/ 02 сентября 2011

Попробуйте сделать это:

$.each(obj, function() {
    console.log ('value : ' + this.val());
});

Демо

1 голос
/ 02 сентября 2011

У вас есть ненужное $ перед значением в каждом цикле:

$value.val() должно быть value.val()

Рабочая демоверсия

1 голос
/ 02 сентября 2011

Вы на правильном пути; вместо использования $ value.val () используйте $ (this). Как это:

$.each(obj, function() {
    console.log ($(this).val());
});
0 голосов
/ 02 сентября 2011

может быть?

var obj = [$('input:text[name=test1]'),
           $('input:text[name=test2]'),
           $('input:text[name=test3]')];

$.each(obj, function(key, value) {
    console.log ('value : ' + value.val());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...