Rumah > Soal Jawab > teks badan
P粉9044059412023-08-25 17:17:22
Anda menggunakan tatasusunan sebagai objek, getElementbyId
dan
getElementsByClassName
ialah:
getElementbyId
akan mengembalikan objek elemen< /a> atau batal jika tiada elemen dengan ID itu ditemuigetElementsByClassName
akan mengembalikan Live HTMLCollection< /a>, yang mungkin panjangnya 0https://www.w3.org/ TR/2008/WD-html5-20080610/dom.html#getelementsbyclassname
https://developer.mozilla.org/en- US/docs/Web/API/Document/getElementById
Sertakan baris berikut dalam kod anda:
akan tidak berfungsi seperti yang diharapkan kerana getElementByClassName
akan mengembalikan tatasusunan, dan tatasusunan itu getElementByClassName
将返回一个数组,并且该数组不具有样式< /code> 属性,您可以通过迭代来访问每个
元素
memang
style
, anda boleh mengakses setiap dengan mengulang > elemen
.
getElementById
为您工作的原因,该函数将返回直接对象。因此,您将能够访问 style
Ini adalah fungsi
P粉5205457532023-08-25 16:48:41
Milik AndagetElementById
代码之所以有效,是因为 ID 必须是唯一的,因此该函数始终只返回一个元素(如果没有找到,则返回 null
).
Namun, kaedah ini
getElementsByClassName
,
getElementsByName
,
getItemByTagName
, dan
getElementsByTagNameNS
Mengembalikan koleksi elemen yang boleh diubah.
Nama kaedah memberikan petunjuk: getElement
暗示单数,而getElements
menyiratkan jamak .
Kaedah querySelector
a> juga mengembalikan satu elemen, dan querySelectorAll code>
mengembalikan koleksi yang boleh diubah.
Koleksi boleh diulang boleh jadi NodeList
或 HTMLCollection
NodeList一个> atau
satu>.
getElementsByName
和 querySelectorAll
均指定返回 节点列表
;其他 getElementsBy*
方法 指定返回 < code>HTMLCollection
document.getElements
…(
…)
读取 style
dan NodeList
或 HTMLCollection
没有 style
;只有 Element
具有 style
querySelectorAll
Koleksi "seperti tatasusunan" ini ialah senarai sifar atau lebih elemen yang perlu anda ulangi untuk mengaksesnya.
Walaupun anda boleh mengulanginya seperti tatasusunan, sila ambil perhatian bahawa ia tidak sama dengan noreferrer">s. 数组
kemudian anda boleh menggunakan forEach
dan kaedah array lain seperti kaedah lelaran Array.from
;那么您可以使用 forEach
:
Array.from(document.getElementsByClassName("myElement"))
.forEach((element) => element.style.size = "100px");
Dalam pelayar lama yang tidak menyokong kaedah Array.from atau lelaran, anda masih boleh menggunakan
langsungNodeList
或 HTMLCollection
(dokumentasi MDN, spesifikasi DOM), iaitu ia dikemas kini apabila DOM berubah.
Jadi jika anda memasukkan atau mengalih keluar elemen semasa menggelung, pastikan anda tidak sengaja langkau beberapa elemen atau cipta gelung tak terhingga.
Dokumentasi MDN hendaklah sentiasa menunjukkan sama ada kaedah mengembalikan koleksi langsung atau koleksi statik.
Sebagai contoh,
document.querySelectorAll(".myElement") .forEach((element) => element.style.size = "100px");
NodeList
提供了一些迭代方法,例如现代浏览器中的 forEach
Anda juga boleh menggunakan gelung mudah:
var elements = document.getElementsByClassName("myElement"); for(var i = 0; i < elements.length; ++i){ elements[i].style.size = "100px"; }
for
Narasi: live NodeList
dan .children
.childNodes
< /a> 产生一个 live NodeList
和 .children
生成一个 live HTMLCollection
menjana
HTMLCollection
, jadi kedua-dua getter ini juga perlu dikendalikan dengan jaga. jQuery🎜 yang menjadikan pertanyaan DOM lebih pendek dan mencipta lapisan abstraksi di atas "elemen" dan "koleksi elemen": 🎜
$(".myElement").css("size", "100px");