循环错误的Javascript
这就是我所拥有的:循环错误的Javascript,javascript,jquery,Javascript,Jquery,这就是我所拥有的: function get_bad_changelist_authors() { var changelistAuthorDivs = $('div.bad_changelist_author'); var changelistAuthors = []; for (var div in changelistAuthorDivs) { changelistAuthors.push($(changelistAuthorDivs[div]).text(
function get_bad_changelist_authors() {
var changelistAuthorDivs = $('div.bad_changelist_author');
var changelistAuthors = [];
for (var div in changelistAuthorDivs) {
changelistAuthors.push($(changelistAuthorDivs[div]).text());
}
return changelistAuthors;
}
changeListAuthorDivs有n个元素,但由于某种原因,它会迭代n+1次,并在最后一次迭代中将div初始化为字符串(即字符串“length”)。在最后一次迭代中,此循环出现错误。JavaScript
for…in
循环还将迭代对象的属性(length
是对象的属性,这就是为什么您最终得到一个包含该字符串的div
),这不是您想要的。对于循环使用正常的:
for(var i = 0; i < changeListAuthorDivs.length; i++) {
//Do stuff
}
for(var i=0;i
JavaScriptfor…in
循环也会迭代对象的属性(length
是对象的属性,这就是为什么最后会出现一个包含该字符串的div
),而这不是您想要的。对于
循环使用正常的:
for(var i = 0; i < changeListAuthorDivs.length; i++) {
//Do stuff
}
for(var i=0;i
您似乎正在使用jQuery(请确认)。然后,您可以使用以更简洁的方式实现相同的目标:
function get_bad_changelist_authors() {
return $('div.bad_changelist_author').map(function() {
return $(this).text();
}).get();
}
或者,在处理jQuery对象时使用
一般来说,@James是完全正确的,不要在
中使用for…来迭代数组()。在这种情况下,必须将jQuery对象视为数组。您似乎正在使用jQuery(请确认)。然后,您可以使用以更简洁的方式实现相同的目标:
function get_bad_changelist_authors() {
return $('div.bad_changelist_author').map(function() {
return $(this).text();
}).get();
}
或者,在处理jQuery对象时使用
一般来说,@James是完全正确的,不要在
中使用for…来迭代数组()。在这种情况下,jQuery对象必须像数组一样对待。试试这个
for (var div in changelistAuthorDivs) {
if(Object.prototype.hasOwnProperty.call(changelistAuthorDivs[div], div))
changelistAuthors.push($(changelistAuthorDivs[div]).text());
}
试试这个
for (var div in changelistAuthorDivs) {
if(Object.prototype.hasOwnProperty.call(changelistAuthorDivs[div], div))
changelistAuthors.push($(changelistAuthorDivs[div]).text());
}
是否已尝试使用带有显式索引器的for循环?比如for(var i=0;iWhy not?lol,我只是对div=“length…我发现一个奇怪的概念已经尝试使用带有显式索引器的for循环感到非常困惑?比如for(var i=0;iWhy not?lol,我只是对div=”感到非常困惑。”长度…我发现这是一个奇怪的概念。我想我会尝试一下map函数。谢谢你指出了一个我可以查看Javascript文档的资源。@纳迪尔:不客气。jQuery文档和Mozilla Javascript参考和指南真的很棒。我建议阅读该指南,它会让你对Javascript文档有更多的了解到JavaScript。快乐编码!:)亲爱的,我想我会尝试一下map函数。谢谢你指出我可以查看Javascript文档的资源。@Nadir:不客气。jQuery文档和Mozilla Javascript参考和指南非常棒。我建议阅读指南,它会让你对Javascript有更多的了解。愉快的编码!:)