Javascript 将字符串获取到具有多个.each函数的数组
我有两个元素,里面有字符串。(我使用。每个`函数) 问题是第二个数组(在Javascript 将字符串获取到具有多个.each函数的数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有两个元素,里面有字符串。(我使用。每个`函数) 问题是第二个数组(在获得字符串后。每个)将替换第一个数组 抱歉,如果您不明白,请尝试看下面 $('div').each(function () { var data = []; $('li', this).each(function () { data.push($(this).text()); }); var data_length = data.length; $(this).chil
获得字符串后。每个)将替换第一个数组
抱歉,如果您不明白,请尝试看下面
$('div').each(function () {
var data = [];
$('li', this).each(function () {
data.push($(this).text());
});
var data_length = data.length;
$(this).children("code").html(data + "");
$("code").click(function () {
data.move(data_length - 1, 0);
$(this).html(data + "");
});
});
Array.prototype.move = function (old_index, new_index) {
if (new_index >= this.length) {
var k = new_index - this.length;
while ((k--) + 1) {
this.push(undefined);
}
}
this.splice(new_index, 0, this.splice(old_index, 1)[0]);
return this; // for testing purposes
};
演示:
我做错了什么?原因与您做的相同。$(this)。children('code')
您还应该将单击事件与作用域绑定
问题是,您正在迭代2个div(您的每个
),这意味着您要绑定$('code')
两次。第一次绑定code
时,它与第一个数据数组(1)绑定,然后第二次绑定(2)。因此,它首先为1s执行单击代码,然后立即为2s运行该代码,从而覆盖。更改为$(this)。查找(“code”)
(或子项
),它将按预期工作
出于与执行$(此项)相同的原因。子项('code')
您还应将单击事件与范围绑定
问题是,您正在迭代2个div(您的每个
),这意味着您要绑定$('code')
两次。第一次绑定code
时,它与第一个数据数组(1)绑定,然后第二次绑定(2)。因此,它首先为1s执行单击代码,然后立即为2s运行该代码,从而覆盖。更改为$(this)。查找(“code”)
(或子项
),它将按预期工作
在这一行:
$("code").click(function () { ...
这说明要用该信息更新所有code
。您需要更改它,使其特定于每个div:
$(this).find("code").click(function () { ...
更新的小提琴:在这一行:
$("code").click(function () { ...
这说明要用该信息更新所有code
。您需要更改它,使其特定于每个div:
$(this).find("code").click(function () { ...
更新的小提琴:如果我没弄错的话,你的.move(l-1,0)
可以写成a.unshift(a.pop())
如果我没弄错的话,你的.move(l-1,0)
可以写成a.unshift(a.pop())
。