Повторите через классы внутри класса внутри div jquery - PullRequest
0 голосов
/ 08 апреля 2020

Предположим, у меня есть следующая структура:

<div id="table">
  <div class="row">  
     <div class="cell">a</div>
     <div class="cell">b</div>
  </div>
  <div class="row">
     <div class="cell">d</div>
     <div class="cell">c</div>
  </div>
</div>

Как мне повторить их так, чтобы я создал ту же структуру, но с <table> вместо <div id="table">, <tr> вместо <div class="row"> и <td> с содержимым div вместо <div class="cell">;

Я пытался сделать что-то вроде

 let topics_table = '<table>'
                $('#table > .row').each(function(){
                    topics_table += '<tr>'
                        $(this + ' .cell').each(function(that){
                            topics_table += '<td>' + that.text() + '</td>'    
                        })
                    topics_table += '</tr>';
                })
 topics_table += '</table>`

Но я получаю ошибку ...

1 Ответ

1 голос
/ 08 апреля 2020
$(this + ' .cell')

Должно быть

$(this).find('.cell')
// or
$('.cell', this)

Вы пытаетесь объединить строку с элементом DOM.

.each(function(that){
   topics_table += '<td>' + that.text() + '</td>'    
})

^^, что также является проблемой, поскольку jQuery передает в качестве первого аргумента индекс, а не элемент.

.each(function(index, that){
   topics_table += '<td>' + that.innerText + '</td>'    
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...