getElementById()方法不适用于表

时间:2015-11-28 23:21:37

标签: javascript html

我想检查表中是否存在具有特定id的元素,下面是我的代码。

HTML:

<table id="age-table">
        <tr>
            <td id="age-header">Your age:</td>
            <td>
                <label>
                    <input type="radio" name="age" value="young"/> under 18
                </label>
                <label>
                    <input type="radio" name="age" value="mature"/> 18 to 50
                </label>
                <label>
                    <input type="radio" name="age" value="senior"/> after 60
                </label>
            </td>
        </tr>
    </table>

脚本:

    <script>
        var table = document.getElementById('age-table');
        var lables = table.getElementsByTagName('label');
        console.log(lables);
        var findid = table.getElementById('age-header'); //throws error table.getElementById() is not a function.

    </script>

我可以通过像这样使用contains()实现我想要的东西

var id = document.getElementById('age-header');
var findid = table.contains(id);
console.log(findid);

但我不明白为什么table.getElementsByTagName('label')有效,但table.getElementById('age-header')犯了错误。任何见解将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:2)

方法getElementById仅适用于Document对象。如果你考虑它,它是有道理的,因为ID应该在文档中是唯一的,而不是DOM元素。

查看this

答案 1 :(得分:0)

document是HTMLDocument的实例。

enter image description here

但元素(在您的示例中为table)是HTMLDivElement的实例。

enter image description here

您可以轻松查看这些原型的不同。