0

我有一个如下的 HTML 结构:

<div id='main'>
  <ul>
    <li>1_1</li>
    <li>1_2</li>
    <li>1_3</li>
  </ul>
   <ul>
    <li>2_1</li>
    <li>2_2</li>
    <li>2_3</li>
  </ul>
  <div id='sub1'>
    <ul>
      <li>sub1_1</li>
      <li>sub1_2</li>
      <li>sub1_3</li>
    </ul>
  </div>
  • 使用jQuery,我试图在'main' div中的所有ul 中获取所有li元素的文本,但不在'sub1' div 中。

  • '#main' 可以包含单个列表,也可以包含多个列表,也可以不包含。

  • 如果选择器在 Node.js 上与 Cheerio 一起工作,那将是一个额外的收获,但我真正想要的是学习解决该问题的正确方法 :)

  • 如果有人觉得这篇文章需要它,我可以添加我失败的尝试。为了避免 tl;dr,假设我对 jQuery 有一定的了解,但我尝试过的没有任何工作!

4

2 回答 2

2

尝试使用child selectorand 之后使用descendants,

$("#main > ul li")

演示

于 2014-07-16T15:15:22.760 回答
0

您可以使用 Jquery 过滤器过滤掉不需要的元素,其中之一是“NOT”过滤器。使用以下代码:

$(document).ready(function(){
  $("#main > ul li").not("#sub1").each(function() {
  alert($(this).text());

});
});

快乐编码:)

于 2014-10-27T09:29:16.483 回答