Как проверить, существует ли атрибут стиля HTML с JavaScript

Я пытаюсь выяснить, имеет ли конкретный элемент атрибут встроенного стиля или нет: я уверен, что есть простой способ проверить это, но я не могу его найти. Я пробовал несколько вещей, в том числе это:

var contentWrapper = document.getElementById("contentWrapper");
if(contentWrapper.style.display.toString=="")
alert("Empty");
else
alert("Not Empty");

Спасибо за помощь!

5 ответов

Решение
if(!contentWrapper.getAttribute("style"))

ИЛИ ЖЕ

if(contentWrapper.getAttribute("style")==null || 
   contentWrapper.getAttribute("style")=="")    

вышеуказанные строки будут работать для вас (любой может быть выбран).

Во втором решении:

сначала проверьте часы, если style attribute присутствует в элементе, вторая проверка гарантирует, что style attribute не присутствует как empty string например <div id="contentWrapper" style="">

Полный код приведен ниже:

var contentWrapper = document.getElementById("contentWrapper");
if(contentWrapper.getAttribute("style")==null || contentWrapper.getAttribute("style")=="")
alert("Empty");
else
alert("Not Empty");

http://jsfiddle.net/mastermindw/fjuZW/ (1-е решение)

http://jsfiddle.net/mastermindw/fjuZW/1/ (2-е решение)

if(contentWrapper.getAttribute("style")){
    if(contentWrapper.getAttribute("style").indexOf("display:") != -1){
        alert("Not Empty");
    } else {
        alert("Empty");
    }
}

Объект стиля имеет lengthсвойство, которое сообщает вам, есть ли у элемента какие-либо встроенные стили или нет. Это также позволяет избежать проблемы наличия атрибута styleприсутствует, но пуст.

      // Would be 0 if no styles are applied and > 0 if there are inline styles applied
contentWrapper.style.length
// So you can check for it like this
contentWrapper.style.length === 0

Я пропустил комментарий @plalx при первом сканировании этой страницы.

if (element.hasAttribute("style"))
{
    var styleText = element.getAttribute("style")
}

На заметку о стилях...

//to get info about the end results of CSS
var computedStyle = element.currentStyle || getComputedStyle(element, null);

а также

//to iterate over css styles from style tags or linked CSS
for i ...
    document.styleSheets[i].rules ...

//great for searching with
var elements = document.querySelectorAll(rules[i].selectorText);

Чтобы проверить, существует атрибут стиля или нет для данного идентификатора

      if(document.getElementById("idname").hasAttribute("style")){
  alert("Style attribute found");
}else{
  alert("Style attribute not found");
}
Другие вопросы по тегам