L oop через вложенный элемент DIV - PullRequest
1 голос
/ 05 февраля 2020

Как лучше всего обходить вложенный элемент div, чтобы получить текст метки?

<div id="parent">
  <div id="div0">
    <span class="ui-icon"></span>
    <label>some data</label>
  </div>
  <div id="div1">
    <span class="ui-icon"></span>
    <label>some data1</label>
  </div>
  <div id="div2">
    <span class="ui-icon"></span>
    <label>some data2</label>
  </div>
</div>

Попытка выполнить что-то вроде следующего, но получить неопределенное,

$('#parent > div > span > label').each(function () {
                    console.log($(this).value); // "this" is the current element in the loop
 });

1 Ответ

4 голосов
/ 05 февраля 2020

У вас есть две проблемы:

1) Ваш селектор ищет label, который является потомком span, когда он является родным братом. Используйте брат или сестру комбинатор вместо

2) Этикетки не имеют value, они имеют innerHtml, textContent et c. Для jquery вы хотите использовать .text();

$(document).ready(function() {
  $('#parent > div > span + label').each(function() {
    console.log($(this).text()); // "this" is the current element in the loop
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent">
  <div id="div0">
    <span class="ui-icon"></span>
    <label>some data</label>
  </div>
  <div id="div1">
    <span class="ui-icon"></span>
    <label>some data1</label>
  </div>
  <div id="div2">
    <span class="ui-icon"></span>
    <label>some data2</label>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...