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

试试这个:

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 回答
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 回答
0

您可以通过以下方式检查数据:

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