jQuery查找具有非空数据属性的元素

时间:2016-07-06 20:42:55

标签: jquery jquery-selectors

我有几个包含数据属性的元素如下:

<div id="container">
  <div class="item" data-value="1"></div>
  <div class="item" data-value="2"></div>
  <div class="item" data-value=""></div>
</div>

我尝试使用类似的东西:

$("#container").find("[data-value]:not(empty)").css({"padding":10});

基本上我想在所有设置了数据值的项目上设置填充,如果数据值为空,则不管它。

2 个答案:

答案 0 :(得分:1)

使用.filter()

这可能会让你开始

$('button').click(function(){
   $('div.item').filter(function(i){
      return $(this).attr('data-value') != "";
   }).css('background','yellow');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="container">
  <div class="item" data-value="1">One</div>
  <div class="item" data-value="2">Two</div>
  <div class="item" data-value="">Three</div>
  <div class="item" data-value="3">Four</div>
  <div class="item" data-value="">Five</div>
  <div class="item" data-value="4">Six</div>
  <div class="item" data-value="">Seven</div>
</div>
<button>Find MT Data</button>

答案 1 :(得分:1)

一种方式:

&#13;
&#13;
$("#container").children().filter(function() {
  return $(this).data('value')
}).css({
  "padding": "10px"
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container">
  <div class="item" data-value="1">1</div>
  <div class="item" data-value="2">2</div>
  <div class="item" data-value="">3</div>
</div>
&#13;
&#13;
&#13;