如何在Jquery数组中添加DOM元素并循环它们?

时间:2011-09-01 21:31:03

标签: jquery arrays object

我试图解决一个问题几个小时,我只是放弃了尝试搜索&代码和看看它是否有效。

也许用简单的代码解释我想要做的事情会更好;

<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. 循环它们并获取它们的值等......
  4. 有办法吗?试图让它工作数小时后,我真的很累。

    感谢您的帮助和提前的时间。

    修改

    当然上面的代码并不是我想要实现的。我有一个有超过700行Jquery代码的表单,我的一个函数中遇到了问题。

    原则是一样的,所以我决定做一些非常简短且清晰易懂的事情。 $ value只是糟糕的副本&amp;糊。在我意识到我没有删除所有旧代码(仅剩 $ )并编辑我的帖子之前,有些人已经回复了。这不是正确的答案,但我只是不想在不给任何人分数的情况下结束这个问题。

    除非您将其更改为;

    ,否则上述代码将无效
    $(document).ready(function(){
     // Put the code here
    });
    

    考虑到我的jquery代码介于<head> </head>之间我必须使用$(document).ready

    我希望这会对某人有所帮助。

    我不是Jquery的新手,我不知道为什么以及如何犯这样的错误。

4 个答案:

答案 0 :(得分:2)

尝试这样做:

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

Demo

答案 1 :(得分:1)

每个循环中的值前面都有一个不必要的$

$value.val() 应为 value.val()

<强> Working Demo

答案 2 :(得分:1)

你走在正确的轨道上;而不是使用$ value.val()使用$(this)。像这样:

$.each(obj, function() {
    console.log ($(this).val());
});

答案 3 :(得分:-1)

可能?

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

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