【问题标题】:How to find elements without a class in Jquery?如何在 Jquery 中查找没有类的元素?
【发布时间】:2015-06-18 15:44:54
【问题描述】:

我有以下html

<div class="one">One<div>
<div class="two">two<div>
<div >three<div>
<div >four<div>
<div class="three">five<div>

如何找到没有类属性的 div 元素?即三四?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

你可以使用:not选择器

$('div:not([class])');

这里是API

还有一个simple Fiddle

【讨论】:

  • API 还说使用 .not() 比使用 :not 更好
  • @Benubird 是的,这就是为什么我附加 Api 以获得完整的想法 :)
  • @Benubird 它说它更清晰,如果在这个例子中是这样的话,这是有争议的。作为一个选择器,可以按原样发送到qSA()
  • @alex 是的。同意。
【解决方案2】:

使用:not选择器进行过滤

$('div:not([class])');

【讨论】:

    【解决方案3】:

    :not() 选择器与属性存在选择器[class] 组合起来。

    $("div:not([class])")
    

    jsFiddle.

    【讨论】:

      【解决方案4】:

      另一种选择是将.not()Has Attribute Selector 一起使用

      $('div').not('[class]')
      

      【讨论】:

        【解决方案5】:

        有不同的方法可以做到这一点。您可以使用 .children() 获取列表,然后对其进行索引。或者你可以查找第二个元素并使用 .next() 来获取它的兄弟。

        【讨论】:

        • 但是如果你已经知道它们是哪些元素,你如何找到没有类的元素呢?
        【解决方案6】:

        假设您不想选择所有没有类的分隔符,如果您确切知道它们在容器中的位置,则可以使用nth-child 选择特定的分隔符。这将选择您的无类分隔符:

        $('div:nth-child(3)') // Selects the third divider
        $('div:nth-child(4)') // Selects the fourth divider
        $('div:nth-child(3), div:nth-child(4)') // Selects both
        

        JSFiddle example.

        您也可以使用.prev().next() 进行选择:

        $('div.two').next() // Selects the divider after div class="two"
        $('div.three').prev() // Selects the divider before div class="three"
        

        【讨论】:

        • 但是如果你已经知道它们是哪些元素,你如何找到没有类的元素呢?
        • 这真的取决于你在寻找什么,@nnnnnn。例如,如果您要查找特定文本,则可以使用 :contains
        • 我的意思是,OP 非常清楚要查找的内容,即不指定类的 div。你的回答不包括那个......
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        • 2019-05-03
        • 2011-02-07
        • 2014-08-14
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多