2011-09-01 76 views
1

我想解決幾個小時的問題,我只是放棄了試圖搜索&代碼&看看它是否工作。如何在Jquery數組中添加DOM元素並循環它們?

也許最好用簡單的代碼解釋我正在嘗試做什麼;

<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. 環路他們,讓他們的價值觀等等...

有沒有辦法做到這一點?試圖讓它工作幾個小時後,我真的很累。

謝謝您的幫助和時間提前。

編輯:

當然上面的代碼是不是我想要的目的。我有一個有超過700行Jquery代碼的表單,並且在我的一個函數中遇到問題。

原理是一樣的,所以我決定做一些非常簡短和明顯可以理解的事情。 $ value was just bad &粘貼。在我意識到我沒有刪除我所有的舊代碼之前(只有$已經離開)並編輯了我的文章之後,有些人已經回覆了。這不是正確的答案,但我只是不想在沒有給任何人分數的情況下結束這個問題。

上面的代碼將無法正常工作,除非您將其更改爲;

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

考慮我的jQuery代碼是<head> </head>之間我必須使用$(document).ready

我希望這會幫助別人。

我不是新手在Jquery中,我不知道爲什麼以及如何犯這樣的錯誤。

+2

$ value.val()應該是value.val() – 8vius

+1

我只是複製和粘貼錯誤。這是這樣的,但由於某種原因,我一直未定義......編輯2:哦,該死,我只是意識到。我把我的代碼之間元素沒有文檔就緒... – Revenant

+2

嘗試刪除(鍵,值),只是聲明它作爲函數()並使用this.val() – 8vius

回答

2

試着這樣做:

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

Demo

+0

這只是更優雅(:謝謝你的回覆。 – Revenant

-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()); 
}); 
1

你必須在價值面前不必要$在每個循環:

$value.val()應該value.val()

Working Demo

+0

這只是錯誤的複製和粘貼。當我爲我的問題寫評論時,真正的原因是; $(文件)。就緒。我的代碼是元素。無論如何謝謝你的回覆。 – Revenant

1

你是在正確的軌道上;而不是使用$ value.val()使用$(this)。就像這樣:

$.each(obj, function() { 
    console.log ($(this).val()); 
}); 
相關問題