检查数据属性是否存在而没有值

APA*_*AD1 4 jquery custom-data-attribute

我的目标是将一些jQuery添加到一个项目中,该项目将检查元素是否data-attribute没有值.例如,使用video标签,您只需添加autoplay一个没有值的标签,它将自动播放.我试图做同样的事情,并想知道是否可能.这是我尝试过的,但它目前正在返回false:

$(function() {
  $('div').click(function() {
    if ($(this).attr('data-specs')) {
      console.log('has specs');
    } else {
      console.log('no specs');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-specs>Specs</div>
Run Code Online (Sandbox Code Playgroud)

Gab*_*oli 7

通过jQuery,您可以使用该.is(selector)方法.

因此,如果将选择器设置为属性1,则可以进行检查

$(function() {
  $('div').click(function() {
    if ($(this).is('[data-specs]')) {
      console.log('has specs');
    } else {
      console.log('no specs');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-specs>Specs</div>
Run Code Online (Sandbox Code Playgroud)


jon*_*fan 5

你可以用this.hasAttribute('data-specs')它代替。

$(function() {
  $('div').click(function() {
    if (this.hasAttribute('data-specs')) {
      console.log('has specs');
    } else {
      console.log('no specs');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-specs>Specs</div>
Run Code Online (Sandbox Code Playgroud)