javascript中的全局变量?
我有以下代码:javascript中的全局变量?,javascript,jquery,Javascript,Jquery,我有以下代码: $(".link").each(function() { group += 1; text += 1; var links = []; links[group] = []; links[group][text] = $(this).val(); } }); var jsonLinks = $.toJSON(links)
$(".link").each(function() {
group += 1;
text += 1;
var links = [];
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
在循环了each.link之后,它将退出each循环,并将数组“links”编码为json。但是数组“links”是每个循环中的局部变量。如何使其成为循环外的全局链接?定义
链接
循环外:
var links = [];
$(".link").each(function() {
group += 1;
text += 1;
links[group] = [];
links[group][text] = $(this).val();
});
var jsonLinks = $.toJSON(links);
我还应该指出,这没有多大意义,因为您将以元素7结尾,例如,作为一个数组,该数组的值只有一个元素(索引为7)。这真的是你想要的吗
我想你们想要的是一个值数组。如果是,为什么不使用
只需在代码块之前声明它:
var links = [];
$(".link").each(function() {
group += 1;
text += 1;
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
或者干脆删除“var”:
$(".link").each(function() {
group += 1;
text += 1;
links = [];
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
创建一个闭包:
{
var links = [];
$(".link").each(function() {
group += 1;
text += 1;
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
}
要定义全局变量,您可以 a)定义函数外部的变量(如其他答案中所述) 或 b)将变量附加到窗口对象
$(".link").each(function() {
group += 1;
text += 1;
window.links = [];
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
或
c)创建一个不带var关键字的变量
$(".link").each(function() {
group += 1;
text += 1;
links = [];
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
JavaScript只理解两个作用域
function getJSONLinks()
{
var links = [];
$(".link").each(function() {
group += 1;
text += 1;
links[group] = [];
links[group][text] = $(this).val();
}
});
return $.toJSON(links);
}
可能被骗()?您的问题出现了两次。最好删除这个。我不太懂地图的功能。我读了文件,但还是不明白。你能解释一下发生了什么事吗?什么是“我”和“瓦尔”?return是什么意思?
map()
将函数应用于数组的每个元素。因此,为每个元素调用该函数。函数返回的内容都在结果数组中。回调的参数是i(从0开始的数字匹配)和val(数组元素,也是this)。
$(".link").each(function() {
group += 1;
text += 1;
links = [];
links[group] = [];
links[group][text] = $(this).val();
}
});
var jsonLinks = $.toJSON(links);
function getJSONLinks()
{
var links = [];
$(".link").each(function() {
group += 1;
text += 1;
links[group] = [];
links[group][text] = $(this).val();
}
});
return $.toJSON(links);
}