如何使用jQuery访问多个div元素上的数据属性

时间:2018-08-30 10:48:51

标签: jquery each custom-data-attribute

我是新jQuery。如何根据div标签中的数据属性隐藏元素。

我的示例代码。

谢谢。

<script>
$(document).ready(function(){

$("div").each(function()
{
   var c=$( "div" ).data( "role" );
   if(c=="page")
   {
   $(this).hide();
   }
   }
   );
});
</script>


<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>
<p>sjhfdsjfhdfjdhsf</p>
<p>jfhdzsdfsdfdsfdsfdsfssjfdhss</p>

</div>
<div data-role="pages" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>
<p>sjhfdsjfhdfjdhsf</p>
<p>jfhdsjfdhss</p>

</div>

2 个答案:

答案 0 :(得分:0)

您需要使用.attr方法来通过jQuery访问存储在数据属性中的数据。下面的示例:

$(document).ready(function(){
  $('div').each(function() {
    var c = $(this).attr('data-role');
    if(c === "page") {
      $(this).hide();
    }
  });
});
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>
  <p>sjhfdsjfhdfjdhsf</p>
  <p>jfhdzsdfsdfdsfdsfdsfssjfdhss</p>
</div>

<div data-role="pages" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>
  <p>sjhfdsjfhdfjdhsf</p>
  <p>jfhdsjfdhss</p>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 1 :(得分:0)

要向您展示除循环之外的另一种方法,您可以仅使用CSS选择器选择所有<div>标签,然后将其隐藏。

一些例子:

$('[data-role']).hide(); // hides all DOM tags which have a "data-role" attribute.
$('div[data-role]').hide(); // hides all <div> tags which have a "data-role" attribute.
$('div[data-role=page]').hide(); // hides all <div> tags which have a "data-role" attribute equals to "page".