Javascript innerhtml флажок

Ну, у меня есть несколько флажков с id = "0", "1", "2", "3"; и т.д. Так что мне нужно получить текст флажков. Вот код флажков в PHP.

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

Поэтому мне нужно получить значение $ years [$ i]. Я использую этот код.

<code>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++;
    }
</code>

0 'и 1' добавляются нормально, но когда я пытаюсь использовать innerHTML, в consle есть и неопределенные значения.

Какие-либо предложения?

 Sergey Scopin13 апр. 2012 г., 17:56
спасибо, за ваши ответы они были полезны.

Ответы на вопрос(4)

потому что элемент должен быть самозакрывающимся:

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

т, что вы не можете иметь вложенный HTML-контент в элементе ввода. Вы можете просто иметь значение элемента ввода.

Решение Вопроса

content элемента. то есть данные между начальным тегом и конечным тегом. Входные данные являются пустыми элементами, они не могут иметь контент (в HTML (в отличие от XHTML) они также не могут иметь конечный тег). Ваш HTML-код недействителен, и вы должны использоватьвалидатор.

Вы, вероятно, хотите что-то вроде этого:

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

Тогда вы можете получить:

checkbox.parentNode.innerHTML;

или же

checkbox.parentNode.getElementsByTagName('span')[0].innerHTML

<input> не имеет закрывающего тега, поэтому он не имеетinnerHTML имущество:

Must have a start tag and must not have an end tag.

ОтMDN.

Я рекомендую вам использовать комбинациюэтикетка и вход.

Ваш ответ на вопрос