Baiklah, saya sudah mencoba-coba JavaScript sebelumnya, tetapi hal paling berguna yang saya tulis adalah CSS-switcher gaya. Jadi saya agak baru dalam hal ini. Katakanlah saya memiliki kode HTML seperti ini:
<div id="foo">
<div class="bar">
Hello world!
</div>
</div>
Bagaimana saya mengubah "Halo dunia!" ke "Selamat tinggal dunia!" ? Saya tahu bagaimana document.getElementByClass dan document.getElementById berfungsi, tetapi saya ingin lebih spesifik. Maaf jika ini sudah ditanyakan sebelumnya.
sumber
document.getElementsByClassName
akan bekerja dengan baik..innerHtml
untuk.textContent
untuk kepentingan keamanan copy / paste coders.Anda dapat melakukannya seperti ini:
atau, jika Anda ingin melakukannya dengan lebih sedikit pengecekan kesalahan dan lebih singkatnya, bisa dilakukan dalam satu baris seperti ini:
Dalam penjelasan:
id="foo"
.class="bar"
.innerHTML
item itu untuk mengubah isinya.Peringatan: beberapa browser lama tidak mendukung
getElementsByClassName
(mis. Versi IE yang lebih lama). Fungsi itu dapat di-shim ke tempatnya jika tidak ada.Di sinilah saya sarankan menggunakan perpustakaan yang memiliki dukungan pemilih CSS3 built-in daripada khawatir tentang kompatibilitas browser sendiri (biarkan orang lain melakukan semua pekerjaan). Jika Anda hanya ingin perpustakaan melakukan itu, maka Sizzle akan bekerja dengan baik. Dalam Sizzle, ini akan dilakukan seperti ini:
jQuery memiliki built-in library Sizzle dan di jQuery, ini akan menjadi:
sumber
Jika ini perlu bekerja di IE 7 atau lebih rendah Anda harus ingat bahwa getElementsByClassName tidak ada di semua browser. Karena ini, Anda dapat membuat getElementsByClassName Anda sendiri atau Anda dapat mencoba ini.
sumber
getElementsByClassName
juga tidak berfungsi di IE8, tetapi Anda dapat menggunakannyaquerySelectorAll
sebagai gantinya (cukup banyak).qSA
dalam shim sehingga Anda masih dapat menggunakan kode asli di IE8. Meskipun melihat lebih dekat pada solusi Anda, Anda punya beberapa hal yang perlu diperbaiki.var i = 0, var child = fooDiv.childNodes[i]
tidak valid.i <= fooDiv.childNodes
tidak terlalu masuk akal.childNode.className.test("bar")
Tidak adachildNode
variabel, dan string tidak memilikitest()
metode.Fungsi rekursif:
sumber
Cara termudah untuk melakukannya adalah:
atau lebih baik dibaca:
sumber
Anda tidak boleh menggunakan document.getElementByID karena hanya berfungsi untuk kontrol sisi klien yang id diperbaiki. Anda harus menggunakan jquery sebagai gantinya seperti contoh di bawah ini.
Gunakan ini :
jika Anda ingin menghapus operasi edit apa pun maka tambahkan saja "." di belakang dan melakukan operasi
sumber