2011-11-24 139 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