循环通过嵌套的DIV元素

时间:2020-02-05 05:04:02

标签: jquery

遍历嵌套的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 个答案:

答案 0 :(得分:4)

您有两个问题:

1)您的选择器正在寻找label的兄弟姐妹span的子代。改用sibling combinator

2)标签没有value,它们有innerHtmltextContent等。对于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>