【问题标题】:Jquery: How to check if the element has certain css class/styleJquery:如何检查元素是否具有某些 css 类/样式
【发布时间】:2010-10-20 01:35:26
【问题描述】:

我有一个 div:

<div class="test" id="someElement" style="position: absolute"></div>

有什么方法可以检查某个元素是否:

$("#someElement") 

有一个特定的类(在我的例子中是“test”)。

另外,有没有办法检查 en 元素是否具有某种样式?在这个例子中,我想知道元素是否有“position: absolute”。

非常感谢!

【问题讨论】:

  • 不确定是问题还是答案错了,但问题有style="test",答案寻找class="test"
  • 我的猜测是,问题是错误的,因为他将错误的答案标记为正确;但无论如何,在查看选票之后,我认为大多数人都在这里偶然发现了这个错误问题的正确答案......呃,如果这有任何意义......我的意思是 DrJokepu 的答案。这就是为什么我至少在这里。

标签: javascript jquery css


【解决方案1】:

CSS 样式是键值对,而不仅仅是“标签”。默认情况下,每个元素都有一套完整的 CSS 样式分配给它,其中大多数隐式使用浏览器默认设置,其中一些在 CSS 样式表中显式地重新定义。

获取分配给元素的特定 CSS 条目的值并进行比较:

if ($('#yourElement').css('position') == 'absolute')
{
   // true
}

如果您没有重新定义样式,您将获得该特定元素的浏览器默认值。

【讨论】:

  • 没有办法用选择器做到这一点?
  • 有了这个你可以看到实际的属性是什么,我需要知道的是这个属性是直接设置的还是从css样式/浏览器继承的……这可能吗?跨度>
  • 如果页面加载后 DOM 更改/对象的 css 值更改,则似乎不适用于该场景。知道如何让它在 DOM 加载后观察 css 变化吗?
  • @Collarbone 您总是可以使用 setTimeout() 和 clearTimeout() 在文档加载后延迟调用一秒钟左右。
【解决方案2】:
if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}

【讨论】:

  • 这没有回答所问的问题——请参阅下面 DrJokepu 的回答。
【解决方案3】:
if ($("element class or id name").css("property") == "value") {
    your code....
}

【讨论】:

    【解决方案4】:

    或者,如果您需要访问具有该属性且不使用 id 的元素,您可以走这条路线:

    $("img").each(function () {
            if ($(this).css("float") == "left") { $(this).addClass("left"); }
            if ($(this).css("float") == "right") { $(this).addClass("right"); }
        })
    

    【讨论】:

      【解决方案5】:

      我找到了一种解决方案:

      $("#someElement")[0].className.match("test")
      

      但不知何故,我相信有更好的方法!

      【讨论】:

        【解决方案6】:

        问题是要求两个不同的东西:

        1. 元素具有特定的类
        2. 元素具有一定的风格。

        第二个问题已经回答了。对于第一个,我会这样做:

        if($("#someElement").is(".test")){
            // Has class test assigned, eventually combined with other classes
        }
        else{
            // Does not have it
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-09-20
          • 2018-04-18
          • 2016-03-12
          • 2021-08-10
          • 2014-02-07
          • 1970-01-01
          • 1970-01-01
          • 2011-07-11
          相关资源
          最近更新 更多