如何从列表中添加/删除值?

时间:2011-07-24 19:36:26

标签: jquery

我需要在整数列表中添加和删除项目。列表中不会有重复。我将列表传递给查询并显示结果。现在,我只需要能够以空列表开始,并且当用户选择项目时,将填充列表。

这个想法是,当用户第一次点击时,该项目将以粗体显示,其ID将添加到列表中。第二次单击某个项目时,该项目将被取消绑定,ID将从列表中删除。容易,对吧?

<script type="text/javascript">
$(document).ready(function() {

    MyList = "";

$(".Cat").live("click", function() {
    CurrentClass = $(this).attr("class");
    // CLICKED
        if (CurrentClass == "Cat") {
        $(this).addClass("Bold");
            NewItem = $(this).attr("id");
            // ADD ITEM TO LIST
            MyList = 
        // UNCLICKED 
        } else {
        $(this).removeClass("Bold");
            NewItem = $(this).attr("id");
            // REMOVE ITEM FROM LIST
            MyList =   
    }
});

});
</script>

<span id="1" class="Cat">1</span>

<span id="2" class="Cat">2</span>

<span id="3" class="Cat">3</span>

3 个答案:

答案 0 :(得分:1)

初始化列表:

var myList = []

添加:

myList.push(NewItem)

删除:

myList.splice( $.inArray(NewItem, myList), 1 );

我认为这是主要问题,通常通过添加/删除类来完成项目的加粗/取消绑定。而且我看到你已经做到了。

答案 1 :(得分:1)

绝对听起来像你想要一个数组。但这是一个将MyList简单地保存为字符串的示例:

http://jsfiddle.net/bf8wE/1/

答案 2 :(得分:0)

我是一个数组并保持简单:

$(document).ready(function() {

    var MyList = new Array();

$(".Cat").live("click", function() {
    CurrentClass = $(this).attr("class");
    // CLICKED
        if (CurrentClass == "Cat") {
        $(this).addClass("Bold");
            NewItem = $(this).attr("id");
            // ADD ITEM TO LIST
            MyList.push(NewItem); 
        // UNCLICKED 
        } else {
        $(this).removeClass("Bold");
            NewItem = $(this).attr("id");
            // REMOVE ITEM FROM LIST
            MyList.splice( $.inArray(NewItem, MyList), 1 );  
    }
});

});

填充此数组后,将其显示为以逗号分隔的实际列表就像MyList.join(',')

一样简单