0

我有 2 个清单:

<ul id="listone">
<li><input type="checkbox"/>item 1</li>
<li><input type="checkbox"/>item 2</li>
<li><input type="checkbox"/>item 3</li>
</ul>


<ul id="listtwo">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>

我想从列表一中取消选中一个项目,以便它在列表二中找到确切的值并从列表二中删除该值。

我正在尝试为列表两个项目分配一个等于项目 1 的索引号的 id,当它未选中时,并删除列表二中的项目,其中有一个 id = 我从列表一中未选中的项目的索引。这是我到目前为止的代码:

$("input.selectme").bind('change',function() {
    var ix = $(this).index(".selectme");
    //var panelix = $("#panel ol li span").html();
    var checked = $(this).is(':checked');   
    var fileurl = $(this).next("label").attr("rel");
    var filename = $(this).next("label").text().replace("&nbsp;","").trim();
    var getlength = $(".fileslist li").length;


            if(checked===true) {                
                $("#panel ol").prev("h5").html("Your list currently has:");
                curl = localStorage.curl="<div class='delete'><\/div><li id="+ix+"><a href='"+fileurl+"'>"+filename+"<\/a><\/li>";
                $("#panel ol").append(localStorage.curl); //creating a new item in the list
                $("#panel .btn").css("display","block");


            }
            else{   
            //ix = $(this).index();             
            for(i=0;i<$("#panel ol li").length;i++){                                
                if(ix === $(this).attr("id")){
                    alert("pl");
                    $(this).css("color","red");

                    }                   
                $(this).attr("id",ix).css("border","solid 1px red");

                }

我无法让它工作...任何帮助将不胜感激...在此先感谢

4

2 回答 2

1

复选框试试这个:

<ul id="listone">
<li><input type="checkbox" class='chk' value="item1"/>item 1</li>
<li><input type="checkbox" class='chk' value="item2"/>item 2</li>
<li><input type="checkbox" class='chk' value="item3"/>item 3</li>
</ul>

<ul id="listtwo">
<li class="list_item1">item 1</li>
<li class="list_item2">item 2</li>
<li class="list_item3">item 3</li>
</ul>

<ul id="listThree">
<li class="list_item1">other item 1</li>
<li class="list_item2">other item 2</li>
<li class="list_item3">other item 3</li>
</ul>

    $(".chk").click(function () {
            var isChecked = $(this).is(':checked');
            if (!isChecked) {
                var itemId = $(this).val();
                $(".list_" + itemId).hide();
            }          
        });
于 2013-07-29T22:11:13.523 回答
0

如果您删除li第二个列表中的元素,索引将不再匹配,我建议:

$('#listone input[type="checkbox"]').change(function(){
    var prop = text = this.nextSibling.nodeValue;
    if (this.checked) {
        $('#listtwo li').filter(function(){
            return text === $.trim($(this).text());
        }).remove();
    }
});

JS 小提琴演示

于 2013-07-29T22:50:58.953 回答