2016-02-19 3 views
1

У меня есть два массива: state и memlist и, как вы можете видеть, я загружаю элементы memlist в #list ul. Это работает с помощью функции .each(), но мне еще нужно загрузить elemnt из state как класс Defintion в <li> с, как следующее:Проблема с использованием петли внутри jQuery .each()

memlist.append($('<li class="'+ state[i] +'">' + value + '</li>')); 

вы можете, пожалуйста, дайте мне знать, как сделать это в JQuery?

var memlist = $("#list"); 

var states = ['one','two','three']; 
var members = [ "John", "Steve", "Ben", "Damon", "Ian" ]; 
$.each(members,function(index, value){ 
    memlist.append($("<li>" + value + "</li>")); 
}); 

Благодаря

+1

'states! = State' so' states [i] 'not' state [i] '-' memlist.append ($ ('

  • ' + значение + '
  • ')); ' –

    +1

    memlist.append ($ ("

  • "+ значение +"
  • ") .addClass (states [index])); –

    +2

    Как вы хотите, чтобы * три * состояния соответствовали * пяти * членам? – nnnnnn

    ответ

    1

    Когда он достигает длины состояния его начать

    var memlist = $("#list"); 
     
    
     
    var states = ['one','two','three']; 
     
    var members = [ "John", "Steve", "Ben", "Damon", "Ian", "test"]; 
     
    var counter = 0; 
     
    $.each(members,function(index, value){ 
     
        //console.log(counter); 
     
        memlist.append($("<li class="+states[counter]+">" + value + "</li>")); 
     
        counter++; 
     
        if(counter == states.length){ 
     
        counter=0; 
     
        } 
     
    
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
     
    <ul id="list"></ul>

    0

    Сначала убедитесь, что Вы имеете такое же количество элементов в states и members. Если они так, вы можете сделать следующее.

    var states = ['one','two','three']; 
    var members = [ "John", "Steve", "Ben", "Damon", "Ian" ]; 
    $.each(members,function(index, value){ 
    // Now index will be helpful to traverse through states array so 
        memlist.append("<li class = '"+states[index]+"'>" + value + "</li>") 
    }); 
    
    0

    Я судил это нормально ..

    $.each(members,function(index, value){ 
        var clas =(index < states.length) ? states[index] : null; 
        memlist.append('<li class="'+clas+'">' + value + '</li>'); 
    }); 
    
    +1

    что бы 'Damon' и' Ian' получили, если выполнили этот код. – Jai

    0

    var states = [one,two,three]; var members = [ "John", "Steve", "Ben", "Damon", "Ian" ]; var element_html=""; for(var i=0 ; i < members.length ; i++) { element_html += <li class=; element_html += state[k]; element_html += >; element_html += value; element_html +=</li>; } $("#list").html(element_html);

    k is what ever you want to choose from state list 
    
    Смежные вопросы