Как перебрать множество разнородных элементов?

0

Я хочу перебирать несколько элементов HTML и получать их значения. Я попытался использовать $.each() для этого, но я не могу понять, как это сделать, когда элемент содержит в себе другие элементы переменных типов. У меня есть структура HTML DOM как:

<li>
 <div>X</div>
 <br/>
 <span>Category : </span>
 <div>Y</div>
 <span><br/>Rating</span>
 <div>
 <span>Z</span>
</div>

Я хочу извлечь из него значения X, Y, Z Также есть несколько примеров этого, поэтому мне придется проходить через каждую из них. Может ли кто-нибудь предложить какой-то подход к этому?

  • 1
    Почему бы не дать каждому интересующему вас элементу идентификатор (или класс), а затем выбрать по идентификатору / классу?
  • 0
    stackoverflow.com/questions/298750/...
Показать ещё 4 комментария

3 ответа

1

Назначьте элементы, которые вас интересуют, в class:

<li>
 <div class="value">X</div>
 <br/>
 <span>Category : </span>
 <div class="value">Y</div>
 <span><br/>Rating</span>
 <div>
 <span class="value">Z</span>
</div>

Затем выберите значения по классам:

$('.values').each(function() {
  console.log($(this).text())
})
1

Похоже, вы читаете text содержимое всех элементов div внутри li. Поэтому постарайтесь

$('li').children('div').each(function(){
    console.log($(this).text())
})
  • 0
    Но "Z" находится в промежутке ... хотя я полагаю, что промежуток находится внутри div.
  • 0
    @nnnnnn похоже, что промежуток обернут в div
1

или

$('li > div').each(function(){
    console.log($(this).text())
})

-РЕДАКТИРОВАТЬ-

Если вам не нужен контент внутри этих пролетов, вы можете попробовать:

$('li > div').each(function(){
      var $tmp =  $(this).clone();
      $tmp.find('span').remove();
      console.log($tmp.text());

})

Ещё вопросы

Сообщество Overcoder
Наверх
Меню