JavaScript更改class和id的方法_javascript技巧
是className,可不是class
注意JavaScript使用的是className去访问class属性,因为class是一个保留关键字,因为将来JavaScript可能开始支持像Java一样的类。
我们在讨论style属性时遇到了棘手的细节问题和浏览器差异性带来的麻烦,正如同经历一场惊涛骇浪。而class和id的更改则像是沙漠里一片平静的绿洲,浏览器们在这里和谐相处。思考这个例子:
p {
color: #000000; /* black */
}
p.emphasis {
color: #cc0000; /* red */
}
Test
最初,该段落没有定义class,所以它的字体颜色是黑色。不过,一行JavaScript就足以改变它的样式:
document.getElementById('test').className = 'emphasis';
瞬间文字变成了红色。如果想要改变回来,你可以按如下操作:
document.getElementById('test').className = '';
你移除了样式,该段落恢复到默认的p{}规则。
对于一个实际应用中的例子,看看“限长的文本输入区”。计数器有这样的结构和呈现样式(该结构由JavaScript动态生成,不过那不影响这个例子):
div.counter {
font-size: 80%;
padding-left: 10px;
}
span.toomuch {
font-weight: 600;
color: #cc0000;
}
当脚本发现用户输入的文字一定达到了最大长度,它修改作为计数器的的class为toomuch:
[限长的文本输入区,第20~23行]
if (currentLength > maxLength)
this.relatedElement.className = 'toomuch';
else
this.relatedElement.className = '';
现在,作为计数器的字体变成粗体和红色。
id的变更以几乎完全一样的方式工作:
p {
color: #000000; /* black */
}
p#emphasis {
color: #cc0000; /* red */
}
Test
document.getElementsByTagName('p')[0].id = 'emphasis';
该段落的文字再次变成了红色。但是,我建议你不要过多改变id。除了作为CSS的钩子,它们也常常作为JavaScript的钩子,改变它们可能存在不确定的副作用。
增加class
通常,你不会给一个元素的class设置新值,而只是添加一个class。因为你不希望移除元素已经拥有的任何样式。因为CSS允许复合样式,新class所包含的样式被添加到元素上,不会移除任何已经存在的class的CSS指令。
“表单验证”中的writeError()和removeError()函数是一个很好的例子。一般来说我会给表单域应用好几个class,因为图形设计师经常对输入框使用两个甚至三个宽度。当一个表单域包含错误的时候,我希望添加一个特别的警告样式,但我不希望搅乱该元素已经拥有的样式。所以,我不能简单地覆盖旧的class值,那样我将失去已经指定的宽度。
看这样的情形:
input.smaller {
width: 75px;
}
input.errorMessage {
border-color: #cc0000;
}
最开始,输入框的宽度是75px。如果脚本设置class为'errorMessage'并且删除旧值,表单域会得到一个红色的边框,但也失去了它的宽度,而那样的话可能会让用户感到非常迷惑。
因此,我是添加了errorMessage class:
[表单验证,第105~106行]
function writeError(obj,message) {
obj.className += ' errorMessage';
这段代码取得已存在的className并在其后附加一个新的class,在它之前加一个空格。这个空格分隔新的class和任何对象可能已经拥有的class值。现在输入框除了拥有75px宽度之外,如我们所愿地得到了红色边框。该表单域现在应用了两个class,HTML就好像这样:
Class在Mozilla中的名称与空白
你可能注意到removeError()移除class的值errorMessage的时候没有前置的空格。那是因为一个浏览器的bug。当你添加errorMessage到一个原来没有值的class的时候,Mozilla会删除前置空格。如果我们随后执行replace(/ errorMessage/,''),Mozilla不能移除class,它找不到字符串errorMessage,因为前置空格已经不在了。
移除class
一旦用户修正了她的错误,class的值errorMessage应该被移除,但任何原来的class,比如smaller,不应该受到影响。removeError()函数提供了这个功能:
[表单验证,第119~120行]
function removeError() {
this.className = this.className.replace(/errorMessage/,'');
它先取得元素的class然后替换字符串'errorMessage'为''(一个空字符)。errorMessage从class的值中被取走,但对其他的值没有影响。表单域失去了红色的边框颜色,但依然维持75px的宽度。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apabila log masuk ke iTunesStore menggunakan AppleID, ralat ini mengatakan "AppleID ini belum digunakan dalam iTunesStore" mungkin dilemparkan pada skrin. Tiada mesej ralat yang perlu dibimbangkan, anda boleh membetulkannya dengan mengikuti set penyelesaian ini. Betulkan 1 – Tukar Alamat Penghantaran Sebab utama gesaan ini muncul di iTunes Store ialah anda tidak mempunyai alamat yang betul dalam profil AppleID anda. Langkah 1 – Pertama, buka Tetapan iPhone pada iPhone anda. Langkah 2 – AppleID harus berada di atas semua tetapan lain. Jadi, bukalah. Langkah 3 – Setelah sampai, buka pilihan “Pembayaran & Penghantaran”. Langkah 4 – Sahkan akses anda menggunakan Face ID. langkah

Jika anda menemui ID acara 55, 50, 140 atau 98 dalam Pemapar Acara Windows 11/10, atau menghadapi ralat bahawa struktur sistem fail cakera rosak dan tidak boleh digunakan, sila ikut panduan di bawah untuk menyelesaikan isu tersebut. Apakah maksud Peristiwa 55, struktur sistem fail pada cakera rosak dan tidak boleh digunakan? Pada sesi 55, struktur sistem fail pada cakera Ntfs rosak dan tidak boleh digunakan. Sila jalankan utiliti chkMSK pada volum Apabila NTFS tidak dapat menulis data ke log transaksi, ralat dengan ID Peristiwa 55 akan dicetuskan, yang akan menyebabkan NTFS gagal menyelesaikan operasi tidak dapat menulis data transaksi. Ralat ini biasanya berlaku apabila sistem fail rosak, mungkin disebabkan oleh kehadiran sektor buruk pada cakera atau ketidakcukupan sistem fail subsistem cakera.

Dalam perisian Alibaba, sebaik sahaja anda berjaya mendaftarkan akaun, sistem akan memberikan anda ID unik, yang akan berfungsi sebagai identiti anda pada platform. Tetapi bagi kebanyakan pengguna, mereka ingin menanyakan ID mereka, tetapi tidak tahu cara melakukannya. Kemudian editor laman web ini akan membawakan anda pengenalan terperinci kepada langkah-langkah strategi di bawah, saya harap ia dapat membantu anda! Di mana untuk mencari jawapan kepada Alibaba ID: [Alibaba]-[My]. 1. Mula-mula buka perisian Alibaba Selepas memasuki laman utama, kita perlu klik [My] di sudut kanan bawah 2. Kemudian selepas datang ke halaman Saya, kita boleh melihat [id] di bahagian atas halaman; Adakah ID sama dengan Taobao Alibaba ID dan Taobao ID adalah berbeza, tetapi kedua-duanya

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

Di manakah saya boleh menyemak ID Video Tencent? Terdapat ID eksklusif dalam APP Video Tencent, tetapi kebanyakan pengguna tidak tahu cara menyemak ID Video Tencent Seterusnya ialah tutorial grafik tentang cara menyemak ID Video Tencent yang dibawa oleh editor untuk pengguna yang berminat. Datang dan lihat! Tutorial Penggunaan Video Tencent Di mana untuk menyemak ID Video Tencent 1. Mula-mula buka APP Video Tencent dan masukkan kawasan khas melalui [Pusat Peribadi] di sudut kanan bawah halaman utama 2. Kemudian masukkan halaman Pusat Peribadi dan pilih [; Fungsi Tetapan]; 3. Kemudian pergi ke halaman Tetapan, klik [Keluar Akaun] di bahagian bawah 4. Akhir sekali, anda boleh melihat nombor ID eksklusif pada halaman yang ditunjukkan di bawah;

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan
