隐藏没有rtl方向的p标签

时间:2017-08-30 12:52:43

标签: jquery

我的页面中有多个p标签,其中几个标签的dir属性值为rtl,而其他标签具有rtl属性 我想隐藏没有dir属性的p标签并尝试使用此代码但不起作用

    $(document).ready(function () {
        jQuery("p:not([dir!=rtl])").hide();
    })

我也尝试了这个代码,但它隐藏了页面上的所有p标签

    $(document).ready(function () {
        jQuery("p:not([dir])").hide();
    })

3 个答案:

答案 0 :(得分:2)

我也使用了与你提到的相同的代码jQuery("p:not([dir])").hide();,它可以正常工作

$(document).ready(function(){
  $("p:not([dir])").hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p dir='rtl'>rtl1</p>
<p dir='rtl'>rtl2</p>
<p dir='rtl'>rtl3</p>
<p>no dir attribute</p>
<p>no dir attribute</p>

答案 1 :(得分:0)

您可以尝试使用这两个选项来隐藏没有dir属性的元素,也可以尝试通过以下jQuery方法将其与属性值匹配:

$(document).ready(function(){
  $("p:not([dir=rtl])").hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p dir='rtl'>rtl1</p>
<p dir='rtl'>rtl2</p>
<p dir='rtl'>rtl3</p>
<p>no dir attribute</p>
<p>no dir attribute</p>

答案 2 :(得分:0)

您可以采用另一种方式

$('p').each(function(){
  if($(this).attr('dir') === 'rtl'){
    $(this).hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p dir='rtl'>rtl1</p>
<p dir='rtl'>rtl2</p>
<p dir='rtl'>rtl3</p>
<p>no dir attribute</p>
<p>no dir attribute</p>
<p dir='rtl'>rtl2</p>

使用p jQuery方法遍历每个each代码。

希望这会对你有所帮助。