suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - obj.style.* kann den Stil nur innerhalb des Tags abrufen, oder? Der folgende Code läuft ohne Fehler

<!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学习ing2772 Tage vor673

Antworte allen(2)Ich werde antworten

  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:30:37

    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"

    所以点击还是会变色

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-06-12 09:30:37

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

    Antwort
    0
  • StornierenAntwort