我的js代码上有一个onChange函数,这个函数有一个只执行一次的foor循环(第一次执行函数),我尝试了一些让我确保函数每次都正常运行的东西但是for循环仅在第一次运行,尽管长度参数i每次检查它仍然是相同的值。
// loading the items to the menu
function loadmenu() {
var selecteditem = $(".selected").text();
alert(selecteditem);
for (j == 0; j <= cats.length; j++) {
if (selecteditem == cats[j]) {
alert("eshta" + cats.length);
}
}
$("#gallery").empty();
}
答案 0 :(得分:5)
更改
for(j==0;j<=cats.length;j++){
到
for(var j=0; j<cats.length; j++){
在您目前的代码中,j
是一个全局变量。第二次进入循环时,j
已经是cats.length+1
,当您使用j==0
时,您不会重置它。
如果要迭代cats
数组的所有元素,则暂停条件应为<
,而不是<=
。在您测试cats[cats.length]
时,您的代码会产生错误。
答案 1 :(得分:2)
您的for循环中需要=
而不是==
。 ==
用于比较。因此,在您的代码中j
没有重置,它只是用于比较,它不应该。因此,您需要=
来为j
分配值。
for(var j=0;j<=cats.length;j++){