0

我试图在一个 UL 中获取单个列表项的内容,当单击一个 UL 时,将该单个 LI 的值添加到数组中,并将列表项的文本字符串附加到页面上其他位置的有序列表项。

我无法比较单击的 LI 的字符串,遍历数组以确保 LI 的字符串列出一次,然后将文本添加到 OL。帮助表示赞赏。

    var list = $('.list'),
    listItem = $('.list li'),
    container = $('.list-content ul'),
    containerItem = $('.list-items li');
    itemArray = [];

    listItem.on({

        'click' : function(){
            var current = $(this),
            currentText = $(this).text();

            if( itemArray.length <= 0 ) {

                itemArray.push(currentText);
                $('<li>'+ currentText + '</li>').appendTo(container); //add text to new area

            }else{
                for( var count = 0; count < itemArray.length; count++){
                    if( currentText === itemArray[count] ){
                        return false;
                        break;
                    } else {
                        itemArray.push(currentText);
                        $('<li>'+ currentText + '</li>').appendTo(container); //add text to new area
                        break;
                    }
                }
            }

        }//end of click function
    });
4

1 回答 1

0

您可以使用$.inArray()检查对象是否存在于数组中

这应该做

var list = $('.list'),
    listItem = $('.list li'),
    container = $('.list-content ul'),
    containerItem = $('.list-items li'), 
    itemArray = [];



listItem.on({
    'click' : function(){
        var current = $(this),
            currentText = $(this).text();

        if($.inArray(currentText, itemArray) == -1){
            itemArray.push(currentText);
            $('<li>'+ currentText + '</li>').appendTo(container); //add text to new area
        }
    }//end of click function

});

演示:小提琴

于 2013-08-12T17:10:12.163 回答