jQuery删除数组索引
jQuery delete array index
我有麻烦删除/从jQuery数组中移除一个项目。我在console.log()中运行了结果,它显示为一个对象。我创建了一个函数,它返回一个json字符串,然后我解析它,下面的例子:
var ret = jQuery.parseJSON($.return_json(data));
它工作得很好,但是,我正在运行一个$.each
循环,从该数组/对象中删除项目。
var old = $("element").find("li[rel=item]");
$.each(old, function(index, value) {
ret.splice($(value).attr("id"), 1);
});
上面,我正在搜索具有rel = item
属性的元素。同一元素包含一个id
,它与返回json解析变量的函数的索引相关。
我在谷歌浏览器中运行开发者工具查看错误,它打印:
Uncaught TypeError: Object #<Object> has no method 'splice'
任何指导性的话语将不胜感激。谢谢。
似乎ret
实际上不是一个数组(而可能是一个对象(例如:{someName: "someVal"}
))。
我还假设你的意思是$(value).attr("id")
是一个字符串标识符,就像上面的对象示例中的someName
一样。如果是这种情况,并且您正在处理一个对象,并且您确实有适当的属性标识符,那么幸运的是,有比splice
更容易的解决方案。
试题:
$("element").find("li[rel=item]").each(function() {
delete ret[$(this).attr("id")];
});
splice
只是数组的方法,不是对象的方法。在本例中,ret
是一个对象,而不是一个数组。
如果你想从一个对象中删除特定的元素,你可以这样做:
$("element").find("li[rel=item]").each(function(i,v){
delete ret[v.id];
});
p。您可以使用.each
代替$.each
。
如果你真的想把对象变成数组,你可以简单地遍历它并把元素压入数组。
var obj = {"1":"item 1", "2": "item 2", "3": "Item 3"};
var arr = [];
for(i in obj){
if(obj.hasOwnProperty(i)){
arr.push(obj[i]);
}
}
ret是包含数组的JSON对象,您不能拼接它。你需要在对象中引用你所调用的数组,并将其拼接。
(如果你张贴你定义数组的代码会有帮助)。
相关文章:
- 是索引数组文字的好做法
- jQuery ajax请求,将索引数组作为关键字字符串
- Javascript中的名称索引-数组/对象
- 如何在对象中按值创建排序索引数组
- 提取索引数组中的整数值
- 来自 jsp 和 javascript 中的请求属性的对象索引数组
- 单击导航索引数组时发出双重警报
- 以编程方式声明基于索引数组的变量(使用谷歌网站列表页面)
- 索引数组 JavaScript 中索引的搜索值
- 根据值从索引数组中删除元素
- 如何检查名称索引数组中有多少个特定结果
- 从 JavaScript 数组中删除索引数组
- 创建一个索引数组,该数组的索引值为 JavaScript 中最常见的数组值
- JavaScript 如何用数组解释索引数组
- 在javascript中向索引数组添加超链接
- 非数字索引数组的长度
- JavaScript-偶数索引数组元素乘以2,奇数索引乘以3
- Javascript-使用索引数组访问数组的元素
- 从数组中删除索引数组
- 在javascript中用索引数组索引一个数组的数组