私はできる限り簡潔にしようとしています:)私はプロジェクトに取り組んでいます。このプロジェクトでは、横にチェックボックスが付いたサムネイル画像でいっぱいのページが多数生成されます。サムネイルの総数はさまざまです。サムネイルは1000アイテムのhtmlページにソートされています。つまり、1000個のサムネイルがhtmlページになります。サムネイルでいっぱいのこれらのページは、iframeを介して親のhtmlページによって呼び出されます。私の目標は、ユーザーがこれらのサムネイルの近くにあるチェックボックスをオンにしてから、新しいページをiframeにロードし、そこにチェックボックスを入れてから、前のページをiframeにロードできるようにし、JavaScriptでチェックボックスをオンにすることです。ユーザーは以前にチェックしていました。配列を使用して、ユーザーがチェックしたチェックボックスを追跡します。
これがjavascriptです。2つの問題があります!最初の問題は、デバッグ用のアラートがあります。正しい値を警告しますが、配列に格納されているすべての値を警告します。iframeページ内に存在するチェックボックスのみにアラートを表示したいので、document.getElementByNamesにアラートを送信します。次に...どのボックスもチェックされません!ボックスチェックなし:(
これを達成する方法について何か考えはありますか?JSとHTMLは以下のとおりです...
JS
function repGenChk(valNam) {
var chkN = valNam.name;
parent.genL.push(chkN);
alert(parent.genL);
}
function chkSet() {
for (var i = 0; i < parent.genL.length; i++) {
var item = parent.genL[i];
var item = document.getElementsByName(item);
if (item != null) { document.getElementsByName(item).checked=true; }
alert(parent.genL[i]);
}}
window.onload = chkSet();
HTML
<input type="checkbox" onClick="repGenChk(this);" value="1" name="1">
<input type="checkbox" onClick="repGenChk(this);" value="2" name="2">
<input type="checkbox" onClick="repGenChk(this);" value="3" name="3">
<input type="checkbox" onClick="repGenChk(this);" value="4" name="4">
so on and so forth for Xthousands of checkboxes....
どんな考え、アイデア、建設的な批評や批評も大歓迎です!私は過去にたくさんのjQueryの提案を受け取りました、そして私はそれをかなり考え始めています。
みなさん、ありがとうございました!
編集-私はそれを理解することができました。チェックボックス付きのIDを使用できるとは思いませんでした。ウー!
JS
function repGenChk(valNam) {
var chkN = valNam.id;
parent.genL.push(chkN);
alert(parent.genL);
}
window.onload = function chkSet() {
for (var i = 0; i < parent.genL.length; i++) {
if (document.getElementById(parent.genL[i]) != null) { document.getElementById(parent.genL[i]).checked=true; }
}
}
HTML
<input type="checkbox" onClick="repGenChk(this);" id="1">
<input type="checkbox" onClick="repGenChk(this);" id="2">
<input type="checkbox" onClick="repGenChk(this);" id="3">
<input type="checkbox" onClick="repGenChk(this);" id="4">
etc etc etc.....
:)