jQuery从对象集合中删除对象

时间:2013-05-16 12:00:22

标签: jquery object

我有以下示例代码,创建一个对象集合。

如何删除其中一个对象? (例如,$ 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。

谢谢!

2 个答案:

答案 0 :(得分:10)

查看

首先,你的代码应该做什么是非常明显的,但这里有一些问题:

jQuery.QuickTest = {
    $TestList: {},
    build: function()
    {
        $TestList={};

您定义jQuery.QuickTest.$TestList,但在build()内,您声明了全局对象$TestList

jQuery.fn下声明的函数应该作用于匹配的元素集(由this引用)并返回它;你的功能都没有。

<强>答案

回答你的一些问题:

  1. .remove()是一个jQuery函数,它从DOM中删除节点,需要在jQuery对象上调用。

  2. .splice()仅适用于Array,即使您正在访问$TestList,就好像它是一个,它仍然只是Object

  3. .delete()不是我所知道的任何功能; - )

  4. 可能的解决方案

    要从$TestList删除条目,您可以这种方式使用delete

    delete $TestList[1];
    

答案 1 :(得分:7)

使用delete myObject,而不是myObject.delete