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

时间:2017-12-28 22:16:33

标签: javascript jquery html

我有以下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;
}));

3 个答案:

答案 0 :(得分:0)

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

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

您看到的第二个属性.parent表示该函数会尝试查找在该元素中没有data-action=Block属性的每个div

答案 1 :(得分:0)

你可以使用jquery不能找到除了not选择器之外的所有div的函数。

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

答案 2 :(得分:0)

将find方法链接起来缩小结果:

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

第一次发现的结果:

  • 父级内的第一级div,没有数据操作=&#34; Block&#34;

第二个查找将在第一个结果中搜索,结果将是:

  • 输入值为false