1

id='0','1','2','3' などのチェックボックスがいくつかあるので、チェックボックスのテキストを取得する必要があります。これはPHPのチェックボックスのコードです。

'<input id="'.$i.'"type="checkbox" name="option1" value="a1" onclick="checkYears()">'.$years[$i].'</input>

したがって、$years[$i]-value を取得する必要があります。私はこのコードを使用しています。

while (bool==false)
    {
        if (document.getElementById(i)!=null)
        {
            if (document.getElementById(i).checked)
            {
                years.push(1);
                yearsValue.push(document.getElementById(i).innerHTML);
                document.getElementById(i).innerText="WORKS";
                console.log(yearsValue[i]);
            }
            else
            {
                years.push(0);
                yearsValue.push(document.getElementById(i)).innerHTML);
                console.log(yearsValue[i]);
            }
        }
        else 
        {
            bool=true;
        }
        i++;
    }

0 と 1 は問題なく追加されますが、innerHTML を使用しようとすると、consle に未定義の値があります。

助言がありますか?

4

5 に答える 5

6

InnerHTML は、要素の HTMLコンテンツを取得します。つまり、開始タグと終了タグの間のデータです。入力は空の要素であり、コンテンツを持つことはできません (HTML では (XHTML とは対照的に) 終了タグを持つこともできません)。HTML が無効です。バリデーターを使用する必要があります。

おそらく次のようなものが必要です。

<label>
    <input type="checkbox">
    <span>Text label</span>
</label>

次に、次を取得できます。

checkbox.parentNode.innerHTML;

また

checkbox.parentNode.getElementsByTagName('span')[0].innerHTML
于 2012-04-13T15:00:10.897 に答える
0

要素は自己閉鎖的であると想定されているため、入力要素にはinnerhtmlがありません。

<input type="checkbox" name="checkbox" value="1" />

于 2012-04-13T14:58:20.583 に答える
0

closeタグがないため、プロパティ<input>がありません。innerHTML

開始タグが必要であり、終了タグがない必要があります。

MDNから。

ラベルと入力を組み合わせて使用​​することをお勧めします。

于 2012-04-13T14:58:48.773 に答える
0

理想的には、入力要素にはinnerHTMLがありません。つまり、input要素にHTMLコンテンツを含めることはできません。入力要素の値だけを持つことができます。

于 2012-04-13T14:58:59.447 に答える