2011-11-24 134 views
0

我有一個腳本設置,循環代碼是這裏的HTML結構jQuery每次循環兩次,爲什麼?

http://jsfiddle.net/OwenMelbz/mPVbE/

它基本上搜索裏的非空的id,並將它們放入一個csv字符串。然而,無論何時我運行它,它總是會在我的非小提琴版本中添加一個額外的循環,所以我有9個li's,3個包含ID,循環運行4次。爲什麼是這樣?

在我的非dev版本中,它實際上是再次挑選第一個li的ID並添加它。例如。

1,2,3,4,5,6,1 

1將在第一個元素上。不知道爲什麼這樣做呢?

感謝

回答

1

你在你的代碼中.each()後進行額外的alert(params);。這是最後的alert()負責。

+0

是的,我注意到,但它仍然犯規解釋額外的1,被添加到年底agian! – Owen

1

小提琴示例中的.each()循環之外有警報。

我更新: http://jsfiddle.net/IrvinDominin/mPVbE/3/

可以在您的非提琴代碼相同的問題嗎?

+0

你好,剛剛在上面指出,這只是在小提琴中,我仍然與我的拳頭李添加到我的字符串的前端和結尾的問題。我想有一個衝突somehwere我必須找到 – Owen

2

這裏是一個更新的,更簡單的版本:

$("#ingredients").submit(function(event) { 
    event.preventDefault(); //Just for testing so the form doesn't submit 
    var params = []; //Array of params 
    $("li").each(function() { 
     if ($(this).prop("id") != "") //Prop always returns a string, empty if no ID 
      params.push($(this).prop("id")); //Push the ID into the array 
    }); 
    alert(params.join(",")); //Join the array with a coma 
}); 

http://jsfiddle.net/mPVbE/4/

+0

ID不是一個屬性,但屬性?我很驚訝這個作品。 http://www.w3.org/TR/html4/struct/global.html#h-7.5.2 – mrtsherman

+1

比這更復雜。檢查[這個問題](http://stackoverflow.com/questions/5874652/prop-vs-attr)。 99%的時間應該使用'.prop'。 –

+0

謝謝,很好的資源 – mrtsherman