javascript - obj.style.* kann den Stil nur innerhalb des Tags abrufen, oder? Der folgende Code läuft ohne Fehler
学习ing
学习ing 2017-06-12 09:28:37
0
2
646

<!DOCTYPE html>
<head>
<style>
p { color:red; text-align:center;cursor:pointer;

    font-weight:bolder; width:300px; }

</style>

<script src="http://code.jquery.com/jquery...
</head>
<body>
<p>Klicken Sie hier</p>
<p>zum Durchlaufen</p>
<p>diese PS.</p>
<script>

$(document.body).click(function () {
  $( "p" ).each(function (i) {
    if ( this.style.color != "blue" ) {
      this.style.color = "blue";
    } else {
      this.style.color = "";
    }
  });
});

</script>

</body>

</html>

Der Wert von this.style.color im Code sollte nicht ermittelt werden, oder? Können Sie erklären, warum der Stil im Style-Tag nicht abgerufen werden kann, das Programm jedoch während des normalen Betriebs die Farbe ändert?

学习ing
学习ing

Antworte allen(2)
给我你的怀抱

HTMLElement.style 属性返回一个 CSSStyleDeclaration 对象,表示元素的 内联style 属性(attribute),但忽略任何样式表应用的属性。 通过 style 可以访问的 CSS 属性列表,可以查看 CSS Properties Reference。

...

通常,要了解元素样式的信息,仅仅使用 style 属性是不够的,这是因为它只包含了在元素内嵌 style 属性(attribute)上声明的的 CSS 属性,而不包括来自其他地方声明的样式,如 <head> 部分的内嵌样式表,或外部样式表。要获取一个元素的所有 CSS 属性,你应该使用 window.getComputedStyle()。

https://developer.mozilla.org...

this.style.color 是空字符串,满足下面的条件

this.style.color != "blue"

所以点击还是会变色

Peter_Zhu

在没有使用DOM对象进行style设置的时候,this.style.color的值应该是空字符串:"",所以this.style.color != "blue"这个表达式的值应该是true

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage