我有一个小问题,如何取变量“j”并将其打印在函数外部。 变量“j”位于for循环中,用于计算输入的数量,我想在整个函数之外取这个变量。请帮忙
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
if (i == i) {
document.getElementById("counter").innerHTML = 1;
}
$('#addScnt').live('click', function korzen() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt' + i + '" size="20" name="p_scnt_' + i + '" value="" placeholder="id' + i + '" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
for (var j = 1; j < i; j++) {
//-----"j" this varible otuside function
}
return false;
}
);
$('#remScnt').live('click', function () {
if (i > 2) {
$(this).parents('p').remove();
i--;
for (var j = i; j >= i; j--) {
document.getElementById("distance_road").innerHTML = j - 1;
};
}
return false;
});
});
document.getElementById("counter").innerHTML = j;
答案 0 :(得分:0)
我在您的代码中做了一些更改......
var j = 0;
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
if (i == i) {
document.getElementById("counter").innerHTML = 1;
}
$('#addScnt').live('click', function korzen() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt' + i + '" size="20" name="p_scnt_' + i + '" value="" placeholder="id' + i + '" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
for (j = 1; j < i; j++) {
//-----"j" this varible otuside function
}
return false;
}
);
$('#remScnt').live('click', function () {
if (i > 2) {
$(this).parents('p').remove();
i--;
for (j = i; j >= i; j--) {
document.getElementById("distance_road").innerHTML = j - 1;
};
}
return false;
});
});
document.getElementById("counter").innerHTML = j;
答案 1 :(得分:0)
你拥有的原型:
(function() {
for(var i=0; i<10;i++) {
console.log(i);
}
})();
console.log("i: "+i);
导致:Uncaught ReferenceError: i is not defined
删除for循环中的var
,你有一个全局变量:
(function() {
for(i=0; i<10;i++) {
console.log(i);
}
})();
console.log("i: "+i);
也在这里查看: http://jsfiddle.net/7t8Xy/
附加说明:
j
作为变量名的可能性很大。我试图阻止全局变量。但是如果我必须使用项目名称或公司名称之类的前缀。在你的情况下,可能只是my_j
。 i
或j
是可以的。但作为一个全球变量,它并不好。远离这个for循环的2000行没有人知道j
代表什么。使用描述变量的名称。在你的情况下 - 我不确定j代表什么,它只是一个猜测 - 也许my_maxDistanceRoad
。