Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery:如何检查元素是否具有特定的css类/样式_Javascript_Jquery_Css - Fatal编程技术网

Javascript Jquery:如何检查元素是否具有特定的css类/样式

Javascript Jquery:如何检查元素是否具有特定的css类/样式,javascript,jquery,css,Javascript,Jquery,Css,我有一个部门: <div class="test" id="someElement" style="position: absolute"></div> 有一个特定的类(在我的例子中是“test”) 或者,是否有方法检查en元素是否具有特定的样式?在本例中,我想知道元素是否具有“位置:绝对值”” 多谢各位 我找到了一个解决方案: if($('#someElement').hasClass('test')) { ... do something ... } else

我有一个部门:

<div class="test" id="someElement" style="position: absolute"></div>
有一个特定的类(在我的例子中是“test”)

或者,是否有方法检查en元素是否具有特定的样式?在本例中,我想知道元素是否具有“
位置:绝对值”


多谢各位

我找到了一个解决方案:

if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}
$("#someElement")[0].className.match("test")

但不知怎的,我相信有更好的办法

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

要获取分配给元素特定CSS项的值并进行比较,请执行以下操作:

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

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

或者,如果您需要访问具有该属性且不使用id的元素,则可以通过以下途径:

if ($("element class or id name").css("property") == "value") {
    your code....
}
$("img").each(function () {
        if ($(this).css("float") == "left") { $(this).addClass("left"); }
        if ($(this).css("float") == "right") { $(this).addClass("right"); }
    })

问题是问两件不同的事情:

  • 元素具有特定的类
  • 元素具有特定的样式
  • 第二个问题已经回答了。对于第一个问题,我会这样做:

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

    不确定是问题还是答案错了,但问题有style=“test”,答案是class=“test”我猜,问题错了,因为他把错误的答案标为正确;但不管怎样,在看了投票后,我认为大多数人都跌跌撞撞地来到这里,寻找这个错误问题的正确答案。。。呃,如果说得通的话。。。我是说Jokepu博士的答案。这就是我来这里的原因。这并没有回答问题——请看下面DrJokepu的回答。没有办法用选择器来实现它?通过这个,你可以看到实际属性是什么,我需要知道的是,这个属性是直接设置的还是从css样式/浏览器继承的。。。这可能吗?如果页面加载后对象的DOM更改/css值更改,则该场景似乎不起作用。您知道如何让它在加载DOM后监视css更改吗?@clarbone您可以在加载文档后始终使用setTimeout()和clearTimeout()将调用延迟一秒钟左右。
    if($("#someElement").is(".test")){
        // Has class test assigned, eventually combined with other classes
    }
    else{
        // Does not have it
    }