cari

Rumah  >  Soal Jawab  >  teks badan

javascript - obj.style.* hanya boleh mendapatkan gaya dalam teg, bukan? Kod di bawah berjalan tanpa ralat

<!DOCTYPE html>
<html>
<kepala>
<gaya>
p { color:red; text-align:center;

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

</style>
<script src="http://code.jquery.com/jquery...
</head>
<body>
<p>Klik di sini</p>
<p>untuk berulang melalui</p>
<p>ps ini</p>
<skrip>

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

</skrip>

</body>
</html>

Nilai this.style.color dalam kod tak sepatutnya dapat kan? Kerana gaya dalam teg gaya tidak boleh diperoleh, tetapi program bertukar warna semasa operasi biasa, bolehkah anda jelaskan mengapa?

学习ing学习ing2772 hari yang lalu671

membalas semua(2)saya akan balas

  • 给我你的怀抱

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

    Sifat

    HTMLElement.style mengembalikan objek CSSStyleDeclaration yang mewakili atribut gaya sebaris elemen, tetapi mengabaikan sebarang atribut yang digunakan helaian gaya. Untuk senarai sifat CSS yang boleh diakses melalui gaya, lihat Rujukan Sifat CSS.

    ...

    Biasanya, untuk memahami maklumat gaya sesuatu elemen, ia tidak mencukupi untuk menggunakan atribut gaya sahaja Ini kerana ia hanya menyertakan atribut CSS yang diisytiharkan pada atribut gaya terbenam elemen itu, dan tidak termasuk gaya yang diisytiharkan daripada yang lain. tempat , seperti helaian gaya sebaris dalam bahagian <kepala> Untuk mendapatkan semua sifat CSS sesuatu elemen, anda harus menggunakan window.getComputedStyle().

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

    this.style.color ialah rentetan kosong dan memenuhi syarat berikut

    this.style.color != "blue"

    Jadi warna masih akan berubah apabila anda mengkliknya

    balas
    0
  • 天蓬老师

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

    Dijalankan tanpa menggunakan objek DOMstyle设置的时候,this.style.color的值应该是空字符串:"",所以this.style.color != "blue"这个表达式的值应该是true.

    balas
    0
  • Batalbalas