繁体   English   中英

使用Jquery根据数据属性提取某些div

[英]Extract out certain divs based on data attribute using Jquery

我有以下 HTML:

<div class="parent">
  ..More Divs
  <div>
    ...More Divs
    <input class="button-input" type="submit" value="false">
  </div> 
..More Divs


  <div >
    ...More Divs
    <input class="button-input" type="submit" value="false">
  </div> 
  <div>
    ...More Divs
    <input class="button-input" type="submit" value="false">
  </div> 

  <div data-action="Block">

    <input class="button-input" type="submit" value="false">
  </div> 
  <div data-action="Block">
    ...More Divs
    <input class="button-input" type="submit" value="false">
  </div>  
  <div data-action="Block">
    ...More Divs
    <input class="button-input" type="submit" value="false">
  </div> 
</div>

我正在尝试获取父级中没有数据操作块的所有 div。 我尝试使用过滤器功能删除块数据操作属性,但没有奏效。 过滤掉没有操作块的 div 后,我需要对输入字段执行一个操作,可以使用.find('input[value="false"]')

$.find(".parent").filter(function() { 
         return this.find("[data-action='Block']").length ==0;
}));

您可以尝试否定属性选择器:

$("div:not([data-action=Block])",".parent")

您看到的第二个属性.parent意味着该函数将尝试查找该元素中没有data-action=Block属性的每个 div

您可以使用 jquery 的 not 函数,它会找到除 not 选择器中的 div 之外的所有 div。

http://api.jquery.com/not/

链接 find 方法以缩小结果范围:

$('.parent').find('> div:not([data-action="Block"])').find('input[value="false"]')

第一次查找的结果:

  • 父级内部的第一级 div,没有 data-action="Block"

第二个 find 将在第一个的结果中搜索,结果将是:

  • 值为 false 的输入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM