簡體   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