代码之家  ›  专栏  ›  技术社区  ›  user944513

如何在javascript中检查属性值?

  •  0
  • user944513  · 技术社区  · 5 年前

    你能告诉我为什么吗 hasAttribute jquery lib线路输入 javascript 但我错了 output 我做错了什么。

    这是我的密码 https://jsbin.com/bagiyoyipu/1/edit?html,js,console,output

    $(function(){
      console.log($('.abc').is('[data-bcid="sss"]'))
    
    console.log(document.querySelector('.abc').hasAttribute('[data-bcid="sss"]'))
    })
    

    console.log($('.abc').is('[data-bcid="sss"]')) true 是的。为什么 second 答案是错的错误。可以我们用javascript写jquery行?

    2 回复  |  直到 5 年前
        1
  •  0
  •   Rory McCrossan Hsm Sharique Hasan    5 年前

    问题是因为你的语法错误。 hasAttribute 只接受

    jQuery的 is() 方法的工作方式不同,因为它将给定元素与选择器字符串作为一个整体进行比较。

    那么我如何得到真实的比较价值 getAttribute()

    为此,您需要首先检索属性值,然后检查它:

    $(function() {
      let el = document.querySelector('.abc');
      let bcid = el.getAttribute('data-bcid');
      console.log(bcid == 'sss')
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="abc" data-bcid="sss">sss</div>

    data 属性更好的做法是通过 dataset 收集而不是 获取属性()

    $(function() {
      let el = document.querySelector('.abc');
      let bcid = el.dataset['bcid'];
      console.log(bcid == 'sss')
    })
    <脚本src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></script>
    <div class=“abc”数据bcid=“sss”>sss</div>
        2
  •  0
  •   Mamun    5 年前

    hasAttribute() 接受表示 属性 . 你可以包括 数据-

    $(function(){
      console.log($('.abc').is('[data-bcid="sss"]'));
      var el = document.querySelector('.abc[data-bcid="sss"]');
      console.log(el? true: false);
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="bcembed abc bcsingle" data-bcid="sss" data-type="single" data-autoplay="true"></div>