function tableColor() {
alert(0) //这里执行
$(".table tr:odd").css("background", "#f8f8f8");
}
第一种写法:
tableColor();//执行alert(0),弹出“0”,表格颜色**没有变化**。
第二种写法:
$(function() {
tableColor();请输入代码
})
//弹出“0”,表格颜色变化了。
Mengapa kaedah penulisan yang berbeza menghasilkan hasil yang berbeza Secara logiknya, fungsi yang sama bukan sahaja akan melaksanakan separuh daripadanya?
$(function(){
//Ini ialah kod yang dilaksanakan selepas halaman dimuatkan
})
Cara pertama anda menulis ialah ia dilaksanakan sebelum halaman dimuatkan, jadi DOM tidak akan berubah jika ia tidak dikesan
Yang kedua ialah singkatan
.ready()
. Sila semak dokumentasi untuk butiran.Secara amnya, rujukan js diletakkan dalam
<head></head>
里面,第一种写法执行的时候,页面还没加载完,所以找不到
$(".table tr:odd")
pemilihJenis kedua dilaksanakan selepas halaman dimuatkan, jadi warna pemilih boleh ditukar.
Sama ada gunakan kaedah kedua, atau tambahkan rujukan js di hujung halaman.
Dalam cara penulisan pertama, apabila kod anda dilaksanakan, elemen jadual mungkin tidak dimuatkan pada halaman, jadi elemen itu mungkin tidak ditemui, jadi tidak akan ada perubahan warna.
.Cara kedua untuk menulis ialah menunggu elemen halaman dimuatkan sebelum melaksanakan kod anda Ini memastikan semua elemen pada halaman telah dimuatkan dan kod itu boleh mencari elemen yang diperlukan, jadi perubahan yang sepadan akan dibuat
Perbezaan antara dua panggilan anda ialah kali pertama anda memanggil
$(".table tr:odd")
apabila DOM tidak dimuatkan, anda mungkin tidak mendapat elemen yang sepadan Anda boleh mencetaknya untuk melihat, tetapi kali kedua anda pasti mendapatnya.Disarankan meletakkan
JS
代码或引入的JS
文件放在页面底部,<BODY>
sebelum itu.Sama seperti jawapan di tingkat satu, cara penulisan pertama, jika ia diletakkan sebelum tag .table dan dilaksanakan sebelum dom dimuatkan, pemilih $ mungkin tidak dapat mencari dom, dan warna tidak boleh berubah.
Untuk yang kedua, adalah disyorkan untuk menyemak penerangan dokumen jquery saya tidak boleh membuka laman web rasmi jquery di sini, jadi saya boleh membacanya dari tempat lain
http://www.css88.com/jqapi-1. ...
1 Kaedah pertama anda untuk menulis ialah melaksanakannya apabila teg dokumen belum dimuatkan. Dalam erti kata lain, jika html anda belum dimuatkan, anda menambah gaya pada .table tr:odd di dalamnya Skrip js tidak akan mengetahui objek yang mana, jadi ia akan menjadi tidak ditentukan. Elemen tidak selesai dimuatkan. Walau bagaimanapun, tiada ralat sintaks dalam fungsi, jadi makluman 0
2.$(function(){}) masih akan dilaksanakan, iaitu, ia akan menunggu html dimuatkan sebelum melaksanakan kaedah di dalamnya masa, html telah dimuatkan, dan js akan ditangkap elemen manakah objek ini supaya ia boleh digayakan.
Rujukan khusus: http://www.w3school.com.cn/h.asp
Soalan ini tamat
Cara pertama untuk menulis:
tableColor();//Execute alert(0), "0" muncul, tetapi dom tidak dipilih dan kod dilaksanakan baris demi baris
Cara penulisan kedua: laksanakan selepas dokumen dimuatkan
$(function() {
})
Kesimpulan, pengenalan js diletakkan di bahagian bawah dokumen Selain fungsi tersuai, js dalaman dalam html ditulis dalam $(function() {}) untuk memastikan kod js dilaksanakan selepas dokumen itu. dilaksanakan