$("#div").click(function(){
$('#myselect').change(function() {
var names = [];
$('.checkbox input').each(function() {
if(this.value != ''){
names.push(this.value);
}
});
console.log(names);
});
});
我需要使用该函数外部的names
来在另一个函数上使用它。谁能告诉我怎么做?
$("#dropdown").change(function(){
console.log(names);
});
names
是一个数组。
答案 0 :(得分:3)
在函数外定义“名称”...
var names = [];
$('#myselect').change(function() {
$('.checkbox input').each(function() {
if(this.value != ''){
names.push(this.value);
}
});
console.log(names);
});
答案 1 :(得分:2)
您应该从该更改事件处理程序中调用另一个函数。在它之外定义数组是没有意义的,它与该事件绑定。
function gotNewNames(names) {
// do something every time the value changes
}
$("#div").click(function(){
$('#myselect').change(function() {
var names = [];
$('.checkbox input').each(function() {
if(this.value != ''){
names.push(this.value);
}
});
gotNewNames(names);
});
});
如果您只需要能够在其他地方获取当前值,则应该在更高的范围内声明变量,例如在点击处理程序中:
$("#div").click(function(){
var names;
$('#myselect').change(function() {
names = []; // don't forget to reset before filling
$('.checkbox input').each(function() {
if(this.value != ''){
names.push(this.value);
}
});
});
$("#dropdown").change(function(){
console.log(names);
});
});
答案 2 :(得分:1)
你的意思是这样的:
如果我错过了什么,请告诉我。
否则希望这有帮助,
<强>代码强>
var names = []; // Move the name array to outer scope
$("#div").click(function(){
$('#myselect').change(function() {
$('.checkbox input').each(function() {
if(this.value != ''){
names.push(this.value);
}
});
console.log(names);
});
alert(names);
});