Jquery: Как проверить, есть ли у элемента определенный класс / стиль CSS - PullRequest
81 голосов
/ 17 апреля 2009

У меня есть div:

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

Есть ли способ проверить, является ли определенный элемент:

$("#someElement") 

имеет определенный класс (в моем случае, «тест»).

Альтернативно, есть ли способ проверить, что элемент en имеет определенный стиль? В этом примере я хотел бы знать, имеет ли элемент "position: absolute".

Большое спасибо!

Ответы [ 6 ]

266 голосов
/ 17 апреля 2009

CSS-стили - это пары ключ-значение, а не просто теги. По умолчанию каждому элементу назначен полный набор стилей CSS, большинство из них неявно используют значения по умолчанию браузера, а некоторые явно переопределены в таблицах стилей CSS.

Чтобы получить значение, присвоенное определенной записи CSS элемента и сравнить его:

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

Если вы не изменили стиль, вы получите браузер по умолчанию для этого конкретного элемента.

56 голосов
/ 17 апреля 2009
if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}
12 голосов
/ 26 февраля 2014
if ($("element class or id name").css("property") == "value") {
    your code....
}
2 голосов
/ 22 января 2015

Или, если вам нужен доступ к элементу, который имеет это свойство и не использует идентификатор, вы можете пойти по этому пути:

$("img").each(function () {
        if ($(this).css("float") == "left") { $(this).addClass("left"); }
        if ($(this).css("float") == "right") { $(this).addClass("right"); }
    })
1 голос
/ 17 апреля 2009

Я нашел одно решение:

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

но почему-то я верю, что есть лучший способ!

0 голосов
/ 29 июля 2018

Вопрос задает две разные вещи:

  1. Элемент имеет определенный класс
  2. Элемент имеет определенный стиль.

На второй вопрос уже дан ответ. Для первого я бы сделал это так:

if($("#someElement").is(".test")){
    // Has class test assigned, eventually combined with other classes
}
else{
    // Does not have it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...