提问者:小点点

jQuery从元素中删除特定文本并将其添加到当前元素中?


假设我有几个div和一组序列号。 当我单击Div时,有一个面板我可以将一些数字传递到Div中; 当我点击第二个div时,我可以将相同的数字传递到当前的一个中,但是会从其他的div中移除重复的数字。

var arr = [1, 2, 3,...,10]

<div id="panel">
<button>1</button>
<button>2</button>
...
<button>10</button>
</div>

<div id="column">
<div class="card">1, 2</div>
<div class="card active">3, 4, 5, 6, 7</div>
<div class="card">8, 9, 10</div>
</div>

我遇到了一个问题:将数字传递给当前的div将删除所有其他的数字(包括那些从未选择的数字)。

$("#panel button").on("click", function(){
        $(this).toggleClass("selected");
        checkSelected()
})

function checkSelected(){
    var arr = [];
    $("#column .card.active").html("");
    for(var i = 0 ; i < $("#panel button .selected").length; i++){
        var num = $("#panel button .selected").eq(i).text()
        arr.push(num)
    }
    arr.sort(function(a, b){
        return a - b;
    });

    for(var j =0; j < arr.length; j++){
        var div = $("#column .card.active");
        var res = '<p>'+arr[j]+'</p>';
        div.append(res);
        // remove others...
        $("#column .card").not( ".active").find("p:contains("+arr[j]+")").filter(function () {
            return $(this).length > 0;
        }).remove();
    }
}

更新:刚刚在jsfiddle这里做了一个示例

有人吗? 有人帮忙吗? 真的很感激。


共1个答案

匿名用户

也许检查最后的。remove()是否会丢弃所有的数字?