0

次のように jquery を使用して、li 要素に任意のデータを追加しています。

  if($("li").data('family').$(this).text()==$(this).text()){
        $("li").removeData('family',{'persons':''}); // I know this is wrong!
        // any idea how to remove data from this object 
    }else{
        //this part adds data which is not working fine 
        $("li").data('family',{$(this).text():$(this).text(),
            'cat':'family'
        });
    } 

上記の値が既に存在するかどうかを検証しようとしています。私は1つの問題に直面しています:

  1. オブジェクトから同じキー値を追加/削除する方法

前もって感謝します!

4

3 に答える 3

1

これを試して

$("#cat-family ul li").live("click", function() {
            var $ul = $(this).closest('ul');
            var family = $ul.data('family');
            if (!family) {
                family = {
                    'cat' : 'family'
                };
                $ul.data('family', family);
            }

            var text = $(this).text();
            if (family[text]) {
                delete family[text];
            } else {
                family[text] = text;
            }
            console.log(this, $ul.data().family);
        });

デモ:フィドル

于 2013-03-06T06:54:51.237 に答える
1

これを試して:

var key='';
$(document).ready(function(){

    $("#cat-family ul li").on("click",function(){
    var $li=$(this);
    key=$(this).text();
    if($(this).data('family')){
        if($(this).data('family').key==$(this).text())
             $(this).removeData('family');        
    }
    else{  
        key=$li.text();
        var k={};
        k[key]=key;
        k['cat']='fam';

        $(this).data('family',k);
    } 
       console.log($(this).data());  
});
}); 

ドキュメントを読むhttp://api.jquery.com/removeData/

フィドル http://jsfiddle.net/WmLQa/1/

于 2013-03-06T06:47:08.123 に答える
0

次の方法でデータを確認できます。

 if($("li").data("family").persons === $(this).text())
 {
     $.removeData($("li") , "family"); //to remove
 }
于 2013-03-06T06:45:31.420 に答える