ホームページ >ウェブフロントエンド >jsチュートリアル >チェックボックス選択に関連する知識ポイントの紹介_JavaScript スキル

チェックボックス選択に関連する知識ポイントの紹介_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:06:031023ブラウズ
1. IE では動作しますが、Firefox では動作しません

IE のバージョン
コードをコピーします コードは次のとおりです:




原因分析: window.event は IE でのみ実行できるため、Firefox で js を実行すると機能しません。 Firefox版では、「id=all」のチェックボックスの選択状態を直接取​​得し、「name=str」のチェックボックスグループの各項目に代入することで、選択状態を同期させることができます。


2. document.getElementById() と document.getElementsByName() の違い


上記の js は、名前からチェックボックスのステータスを取得します。見てください。これらの関数は似ているはずです。一方は id を通じて要素を取得し、もう一方は名前を通じて要素を取得します。ただし、2 つの方法には違いがあるため、使用時に注意しないと、同じ意味で使用できると思われ、混乱が生じる可能性があります。当時はどれでも良いと思っていたのですが、名前を変更したらjsコードが動かなくなりました、実はそれは私が理解していなかったので間違って使っていたのです。
(1) document.getElementById() は ID を介して特定の要素にアクセスします。ID はページ内で一意であるため、この関数は要素
(2) document.getElementsByName() を返します。名前はページ内で一意ではなく、同じ名前を持つことができるため、この関数は要素

のセットを返します。これは、一方が要素であり、もう一方が配列であるためです。これらを混合するときに注意しないと、エラーが発生し、js が実行できなくなります。たとえば、a[i].checked=document.getElementById("all").checked; を a[i].checked=document.getElementsByName("all").checked; に変更すると、js が実行できなくなりました。 (jsはエラーを起こすがエラーを報告しないので、効果がないように感じます) 実際には、ここで認識されないのではなく、呼び出し時に間違って使用されているためです。 is a[i].checked=document.getElementsByName("all ")[0].checked; このように変更すると、効果は同じになります。このページには「name=all」のチェックボックスが 1 つしかないため、[0] を使用して Elements の最初の要素を取得します。つまり、 a[i].checked=document.getElementById("all") を渡します。チェック済み;取得された要素。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。