繁体   English   中英

第一次迭代后,用于循环的JQuery Javascript停止

[英]JQuery Javascript for loop stops after first iteration

在此处输入图片说明 我有两个<ul>列表,我想在检查目标列表中是否已存在某个选定元素之后将其从一个移到另一个,因此我不得不创建一个函数,该函数将选定的<li>的文本与目标<ul><li>元素:

$(document).ready(function () {
    $('html').on('click', 'li', function() {
        $(this).toggleClass('selected');
    });

//Déplacer vers la gauche
$('#btnLeft').click(function() {    

    var elementExiste = function(liste,selectionne){
        var exists=false;
        for(var x=0; x<liste.length; x++){
            if(liste.children().eq(x).text()===selectionne){ 
                exists=true;
                break;
            }
        }
        return exists;
    }

    var bool = true;
    for(var i=0; i< $('.selected').length; i++){        
        if(elementExiste($('.list1'),$('.selected').eq(i).text())){
            alert('Cet élément existe déjà');
            bool = bool && false;
        }
        else {
            bool = bool && true
        }
    }

    if(bool)
            $('.list1').append($('.list2 .selected').removeClass('selected'));
    });
}

for循环在第一次迭代中工作正常,但是在此之后就中断了

您将ul传递给函数,因此liste.length = 1您可以传递所有li元素:

elementExiste($('.list1 li'),$('.selected').eq(i).text()))

或在其中选择li元素:

liste.children().length

这样就可以遍历所有这些对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM