Как проверить, существует ли атрибут стиля 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");
}