JQuery:在数组内切换 Push/Splice
JQuery: Toggle Push/Splice within Array
这就是我想要做的:
我有一个 div 具有相同 class 的列表,每次我单击其中一个 div 我想存储相应 div 在数组中,类似于:
var array = [];
[CODE]
$("divID").on("click", function(){
array.push($(this).attr("id"));
[CODE]
});
我想要完成的是任何其他点击相同的 div push/splice 数组中的匹配 ID。我猜 push/splice 按 ID 切换...
将 div ID 压入数组不是问题,但删除它们似乎有点问题,因为我只能清除整个数组。
我必须如何遍历数组才能找到匹配的 ID 并在点击时切换它?
谢谢!
如我的 OP 评论所述,更简单的方法是使用 Hash
而不是简单数组。这样,您可以在单击时添加 {ID: 'on'}
,然后更新 ID 并在再次单击时设置为 'off'。这样,您不必从数组中删除任何项目——只需更新其状态即可。
例如:
var hash = {};
$("divID").on("click", function(){
var id = $(this).attr("id");
// Turns it on
hash[id] = 'on'; // 'on' or true
// Alternatively, turn it off
hash[id] = 'off'; // 'off' or false
// You can also check its status
// if (hash[id] == 'on')...
});
更新:关于原始方法:
我在这里找到了 adding/removing 数组值的原始方法的答案(参考):
这是代码:
var index= jQuery.inArray(theValue, theArray);
//If you're not using any other Javascript library that utilizes the $ sign, you can use the $ sign
//instead of the jQuery namespace
var index= $.inArray(theValue, theArray);
if(index== -1)
{
//Value not found in the array. Add to the end of the array with push();
theArray.push(theValue);
}
else
{
//Remove from the array using splice(). Splice takes the index value of where you want to start
//removing items from the array as the first parameter, and then the number of item you want
//to remove as the second parameter.
theArray.splice(index,1);
}
我也成功了,希望对其他人有帮助。
这就是我想要做的:
我有一个 div 具有相同 class 的列表,每次我单击其中一个 div 我想存储相应 div 在数组中,类似于:
var array = [];
[CODE]
$("divID").on("click", function(){
array.push($(this).attr("id"));
[CODE]
});
我想要完成的是任何其他点击相同的 div push/splice 数组中的匹配 ID。我猜 push/splice 按 ID 切换...
将 div ID 压入数组不是问题,但删除它们似乎有点问题,因为我只能清除整个数组。
我必须如何遍历数组才能找到匹配的 ID 并在点击时切换它?
谢谢!
如我的 OP 评论所述,更简单的方法是使用 Hash
而不是简单数组。这样,您可以在单击时添加 {ID: 'on'}
,然后更新 ID 并在再次单击时设置为 'off'。这样,您不必从数组中删除任何项目——只需更新其状态即可。
例如:
var hash = {};
$("divID").on("click", function(){
var id = $(this).attr("id");
// Turns it on
hash[id] = 'on'; // 'on' or true
// Alternatively, turn it off
hash[id] = 'off'; // 'off' or false
// You can also check its status
// if (hash[id] == 'on')...
});
更新:关于原始方法:
我在这里找到了 adding/removing 数组值的原始方法的答案(参考):
这是代码:
var index= jQuery.inArray(theValue, theArray);
//If you're not using any other Javascript library that utilizes the $ sign, you can use the $ sign
//instead of the jQuery namespace
var index= $.inArray(theValue, theArray);
if(index== -1)
{
//Value not found in the array. Add to the end of the array with push();
theArray.push(theValue);
}
else
{
//Remove from the array using splice(). Splice takes the index value of where you want to start
//removing items from the array as the first parameter, and then the number of item you want
//to remove as the second parameter.
theArray.splice(index,1);
}
我也成功了,希望对其他人有帮助。