6

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

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

谢谢!

4

2 回答 2

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()不是我知道的任何功能;-)

可能的解决方案

要从中删除条目,$TestList可以使用delete以下方式:

delete $TestList[1];
于 2013-05-16T12:30:21.377 回答
7

使用delete myObject,而不是myObject.delete

于 2013-05-16T12:02:33.503 回答