问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

為什麼我無法用 innerHTML 獲取 <input> 裡的"音乐"?

<form>
    <input type="checkbox" name="hobby" id="hobby1">音乐
    <input type="checkbox" name="hobby" id="hobby2">登山
</form>
<script type="text/javascript">
    var input=document.getElementsByTagName("input");
    document.write(input[0].innerHTML); //結果為無
    document.write(input.innerHTML); //結果為1  ← 我自己搞錯了 2016.08.31
    document.write(input[0].value); //結果為on
</script>
為什麼我無法用 input[0].innerHTML 獲取到 <input> 裡的"音乐"?
如果不指定索引,直接用 innerHTML 就會獲取到 1,為什麼? ← 我自己搞錯了 2016.08.31
為什麼我用 input[0].value 獲取到的是 on? on 是什麼意思?


提问者:sz_yeefun 2016-08-31 01:13

个回答

  • 冉苒_yu
    2016-08-31 15:46:10
    已采纳

    1.因为<input>并没有和后面text的内容绑定,可以改成<label><input type="checkbox" name="hobby" id="hobby1">音乐</label> 将复选框和text绑定(之前为了onclick文字就选中复选框的时候就是这么干的)再输出“音乐”,另外也可以用ocument.write(input[0].nextSibling.nodeValue);输出“音乐”
    2.我的 input.innerHTML输出为“undefined”,没什么问题;
    3.input[0].value输出的checkbox的值,在value未指定属性时,输出“on”

  • bigiver
    2016-08-31 14:37:21

    innerHTML是获取元素里面的文本,比如<p>html</p> 是可以通过innerHTML获取“html”值,你的音乐和登山并没有包裹在input元素里,所以无法取到