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

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

sz_yeefun

2016-08-31 01:13

<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 是什麼意思?


写回答 关注

2回答

  • 冉苒_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”

    sz_yee...

    這我困惑了好久,非常感謝您!

    2016-08-31 16:02:17

    共 1 条回复 >

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

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

    sz_yee...

    了解了,謝謝您!

    2016-08-31 16:03:03

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题