Rumah > hujung hadapan web > tutorial js > Perbezaan antara document.forms[0] dan getElementByName dalam kemahiran JavaScript_javascript

Perbezaan antara document.forms[0] dan getElementByName dalam kemahiran JavaScript_javascript

WBOY
Lepaskan: 2016-05-16 16:18:35
asal
1379 orang telah melayarinya

Mula-mula mari kita lihat contoh:

Salin kod Kod adalah seperti berikut:


testtest

testtest

testtest


document.forms[0] Apabila terdapat borang borang atau berbilang borang dalam halaman HTML, tatasusunan borang jenis NodeList dikembalikan
document.forms[0].nama pengguna, di mana nama pengguna boleh menjadi nilai id atau nilai nama, kedua-dua atribut ini bersamaan di sini. Selain itu, ia tidak membezakan sama ada komponen itu ialah kotak teks, butang radio, atau kotak semak.

Pada masa ini dua situasi perlu dibezakan ,

Apabila terdapat input yang id atau namanya ialah 'nama pengguna', document.forms[0].nama pengguna mengembalikan komponen input tertentu Jika anda mengendalikannya pada masa ini, anda mesti menggunakannya mengikut kaedah pengendalian komponen tertentu .

Pada masa ini, alert(document.forms[0].usernames.length) mengembalikan tidak ditentukan kerana komponen input tidak mempunyai atribut panjang.
Apabila terdapat dua atau lebih input yang id atau namanya ialah 'nama pengguna', document.forms[0].nama pengguna mengembalikan tatasusunan NodeList Pada masa ini,
alert(document.forms[0].usernames.length) akan mengembalikan panjang tatasusunan Dalam contoh di atas, nilai pulangan ialah 3
Oleh itu, apabila menggunakan js untuk memilih semua, anda mesti mempertimbangkan situasi di mana terdapat satu atau lebih kotak pilihan dengan nama yang sama

Salin kod Kod adalah seperti berikut:

fungsi allSelect(){
var form = document.forms[0];
keadaan var = form.allselectbox.checked;
var length = form.usernames.length;//Apabila terdapat dua atau lebih kotak semak bernama nama pengguna, panjang tatasusunan dikembalikan
//Apabila terdapat kotak semak bernama nama pengguna, form.usernames mengembalikan objek kotak semak dan bukannya tatasusunan, jadi atribut panjangnya tidak ditentukan
if(length){ //Dalam JavaScript, selagi syarat yang dinilai ialah 0, batal atau tidak ditentukan, ia dianggap palsu dan situasi lain dianggap benar
untuk(var i=0;i form.usernames[i].checked=state;
}
}
lain{
form.usernames.checked=state;
}
}

Jika terdapat satu komponen dengan id 'nama pengguna' atau berbilang id komponen dengan 'nama pengguna', nilai yang dikembalikan oleh document.getElementById('nama pengguna') ialah komponen borang Apabila terdapat berbilang komponen dengan id daripada 'nama pengguna', pulangan ialah komponen pertama dengan id 'nama pengguna'.
Jika terdapat komponen dengan nama 'nama pengguna' atau berbilang komponen dengan nama 'nama pengguna', document.getElementsByName() mengembalikan tatasusunan HTMLCollection. Perhatikan perbezaan dengan document.getElementsByTagName(), yang memperoleh tatasusunan berdasarkan kategori teg.
var names = document.getElementsByTagName("nama pengguna"), alert(nama[0]) Hasil yang dikembalikan di sini adalah tidak ditakrifkan pada asalnya saya mengelirukan byName dengan byTagName, dan tiada teg bermula dengan nama pengguna, <. ;/nama pengguna>Ini tidak wujud.
Walau bagaimanapun, getElementsByTagName masih mengembalikan koleksi tatasusunan, yang tidak mengandungi sebarang kandungan[0] tidak wujud, jadi undefined dikembalikan, kerana apabila ia melebihi julat tatasusunan, semua nilai yang tidak ditentukan akan muncul.
var test = {'0','1','2',};alert(test[3]); kembali tidak ditentukan.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan