1. IEで動作します。Firefoxは機能しません
IEバージョン
次のようにコードコードをコピーします。
<script type = "text/javascript">
function checkall(str)//完全に選択されたjs
{{
var a = document.getElementsbyname(str);
var n = a.length;
for(var i = 0; i <n; i ++)
{{
a [i] .checked = window.event.srcelement.checked;
}
}
</script>
ファイアフォックスバージョン
次のようにコードコードをコピーします。
<script type = "text/javascript">
function checkall(str)//完全に選択されたjs
{{
var a = document.getElementsbyname(str);
var n = a.length;
for(var i = 0; i <n; i ++){
a [i] .checked = document.getElementById( "all")。
}
}
</script>
原因分析:window.eventはIEの下でのみ実行できます。そのため、JSはFix Foxの下では機能しません。 Fire Foxバージョンでは、「id = all」のチェックボックスが直接選択され、「name = str」のチェックボックスグループの各アイテムが選択されているため、選択ステータスの同期を維持します。
2。document.getElementById()とdocumeの違い
上記のJSは、2つの方法でチェックボックスを取得します。ただし、これらの2つの方法は、使用プロセス中に注意を払わない場合、混合する可能性があります。当時、私は1つをさりげなく使用するように感じましたが、名前が変更された後、JSコードはうまくいかなかったためです。
(1)document.getElementByID()は、1つのページのIDが一意であるため、IDを介して特定の要素にアクセスするため、この関数は要素を返します
(2)document.getElementsbyname()は名前を介して要素にアクセスするためです。1つのページの名前だけではなく、交換できるため、この関数は一連の要素を返します
1つが要素であり、もう1つが配列であるため、まさにそれがあるため、混合したときに注意を払わないとJSが実行できない場合にエラーが発生します。たとえば、[i]を取得しましたしかし、エラーを報告するのではなく、実際には機能しないように感じます。正しいライティング方法は[i]であるため、ここでは不十分です。 ]。この変更後、効果は同じでした。ページに「name = all」のチェックボックスが1つしかないため、[0]を使用して要素の最初の要素を取得します。つまり、[i]を使用します。ceecked= document.getelementbyid( "all")。取得した要素。