2013-05-16 4 views
6

次のサンプルコードでは、オブジェクトコレクションを作成しています。jQueryオブジェクトコレクションからオブジェクトを削除します。

どのようにオブジェクトを削除できますか? (例えば、$ TestListは "delete me"という項目が存在しないかのように見えます。) .remove、.splice、.deleteなどを試しましたが、関数ではないと言われています。 testlistという)は、オブジェクトに戻しますと、typeof演算($ testlistという[0])にも有効なようです。

確かに私は1つのアイテムなしでコレクションを再作成する必要はありませんか?

(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

'$()'は1.4から動作しませんでしたか?それ以外にも、このコードが何をすべきか分かってもらえますか? –

+0

Btw、 '$ TestList'はグローバルな意味を持ちますが、これは悪い考えです。 –

+0

@Jack:1.4より前では、 '$()'は 'document'要素を含むjQueryオブジェクトを返します。 – Matt

答えて

10

レビューすべての

まず、それはあなたのコードが行うことになっているものは非常に非自明だが、ここではいくつかの問題があります:

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

ますjQuery.QuickTest.$TestListを定義しますが、build()の内部には、というグローバルオブジェクト$TestListと宣言します。

jQuery.fnの下に宣言された関数は、一致する要素のセット(thisで参照される)に対して作用し、同様にそれを返します。あなたの機能はどちらもしません。

は、あなたの質問のいくつかに

答え回答:

  1. .remove()をDOMからノードを削除し、jQueryオブジェクトで呼び出される必要があるjQueryの関数です。

  2. .splice()のみArrayに適用され、それが1であるかのようにあなたが$TestListにアクセスしているにもかかわらず、それはまだただObjectです。

  3. .delete()あなたがこの方法でdeleteを使用することができ$TestListからエントリを削除するには、私が知っている任意の関数;-)

解決策

ではありません。

delete $TestList[1]; 
+0

非常に感謝しています! 絶対的な基礎だけで、私のコードを完全に切り捨てたものです。はい、少し開いていますので、残念です。 あなたの説明は、私に見てたくさん与えてくれました。とてもありがとう!あなたが本当に使用する言葉を知らないときにあなたがしようとしているものを見つけることは、今日かなり困難です。それはどこにでも渡すことなく、私の他のすべての機能に利用可能なオブジェクトを実行する私の方法でした。 と削除はまさに私が必要としていたものです。 :-) –

7

使用delete myObject、ないmyObject.delete

+0

これはちょうどjavascriptであり、jQueryなしで動作します – Michiel

+0

オブジェクトを完全に削除しません。代わりに、それは 'null'のままになります。 – Fizzix

関連する問題