Javascript innerhtml的复选框

Ser*_*pin 1 javascript checkbox innerhtml getelementbyid

好吧,我有一些id ='0','1','2','3'等复选框.所以我需要获取复选框的文本.这是PHP中的复选框代码.

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

所以我需要获得$ 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++;
    }
Run Code Online (Sandbox Code Playgroud)

0和1都添加正常,但是当我尝试使用innerHTML时,在consle中存在和未定义的值.

有什么建议?

Que*_*tin 6

InnerHTML获取元素的HTML 内容.即开始标记和结束标记之间的数据.输入是空元素,它们不能有内容(在HTML中(与XHTML相反)它们也不能有结束标记).您的HTML无效,您应该使用验证器.

你可能想要这样的东西:

<label>
    <input type="checkbox">
    <span>Text label</span>
</label>
Run Code Online (Sandbox Code Playgroud)

然后你可以得到:

checkbox.parentNode.innerHTML;
Run Code Online (Sandbox Code Playgroud)

要么

checkbox.parentNode.getElementsByTagName('span')[0].innerHTML
Run Code Online (Sandbox Code Playgroud)