我有以下示例代码,创建一个对象集合。
如何删除其中一个对象? (例如,$ TestList看起来好像“删除我”项目从未出现过。 我已经尝试过.remove,.splice,.delete等,但我被告知这不是一个功能。
执行typeof($ TestList)会返回对象,而typeof($ TestList [0])似乎也有效。
当然,如果没有一个项目,我不必重新创建集合吗?
(function($) {
jQuery.QuickTest = {
$TestList: {},
build: function()
{
$TestList={};
$TestList[0] =
{
title: "part 1"
};
$TestList[1] =
{
title: "delete me please"
};
$TestList[2] =
{
title: "part 2"
};
}
}
jQuery.fn.QuickTest = jQuery.QuickTest.build;
})(jQuery);
$(document).ready(function() {
$().QuickTest(
{
})
});
我们正在使用jQuery 1.3。
谢谢!
答案 0 :(得分:10)
查看强>
首先,你的代码应该做什么是非常明显的,但这里有一些问题:
jQuery.QuickTest = {
$TestList: {},
build: function()
{
$TestList={};
您定义jQuery.QuickTest.$TestList
,但在build()
内,您声明了全局对象$TestList
。
在jQuery.fn
下声明的函数应该作用于匹配的元素集(由this
引用)并返回它;你的功能都没有。
<强>答案强>
回答你的一些问题:
.remove()
是一个jQuery函数,它从DOM中删除节点,需要在jQuery对象上调用。
.splice()
仅适用于Array
,即使您正在访问$TestList
,就好像它是一个,它仍然只是Object
。
.delete()
不是我所知道的任何功能; - )
可能的解决方案
要从$TestList
删除条目,您可以这种方式使用delete
:
delete $TestList[1];
答案 1 :(得分:7)
使用delete myObject
,而不是myObject.delete