2012-08-12 84 views
1

編輯:此代碼工作正常,忽略了的div堆積在海誓山盟上,通過視覺反饋愚弄:(原諒我jquery每個都不會遍歷所有元素?

我一直在這裏尋找在計算器上的每一個問題,並閱讀了jQuery的文檔,但我。 ?着找出爲什麼這個片段只是將「酒吧」中的div一個缺少什麼我在這裏所有的例子似乎以這種方式工作:

<div class="foo"></div> 
<div class="foo"></div> 

$(".foo").each(
    function() { 
    $(this).append("bar"); 
    } 
); 

我選擇所有Foo類元素,在它們之間迭代在每個函數中,這是當前元素的權利?似乎不是...我做錯了什麼?

我也試過了:

function(index, element) {$(element)等等結果。

+4

作品:http://jsfiddle.net/4KuQ8/。如果在腳本之後定義第二個元素,是否將它放在'$(document).ready'中? – pimvdb 2012-08-12 09:46:22

+1

這是您在頁面上使用的確切字符替換字符html嗎? – Esailija 2012-08-12 09:50:20

+0

謝謝發現我的問題! – Klodder 2012-08-12 09:51:05

回答

6

您需要提供一個帶有索引和元素參數的函數,這將允許您迭代jQuery選擇的對象。

你只能做一次的文件已經準備好,所以一定要確保它已準備就緒,或包裹在準備

<div class="foo"></div> 
<div class="foo"></div> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $(".foo").each(function(index, element) { 
     $(element).append("bar"); 
     } 
    ); 
}); 
</script> 
1

如前所述,您的代碼,並通過pimvdb中提到的替代短版(關於問題的評論)完美無缺。

DEMO

你最有可能具有在$(document).ready(function(){});不是代碼或您參考jQuery庫丟失的問題。

.ready()之內放置代碼可確保DOM在腳本執行前完全加載(圖像除外)。