纯javascript选择儿童dom

时间:2014-05-11 17:52:30

标签: javascript

我正在学习不使用jquery只有纯粹的javascript,只是启动并遇到麻烦..... 如何选择儿童dom

<div class="row-button">
    <input type="submit" />
</div>

我正在尝试下面的代码,但都显示错误消息。

var submit_button = document.getElementsByClassName("row-button");
console.log(submit_button.nodeType); //undefined
console.log(submit_button.firstChild); // undefined
console.log(submit_button.childNodes[0]);  // TypeError: 'undefined' is not an object (evaluating 'submit_button.childNodes[0]')

或者我认为可能需要添加窗口onload以确保dom准备就绪

window.onload = function () {
    var submit_button = document.getElementsByClassName("row-button");
    console.log(submit_button.nodeType); //undefined
    console.log(submit_button.firstChild); // undefined
    console.log(submit_button.childNodes[0]);  // TypeError: 'undefined' is not an object (evaluating 'submit_button.childNodes[0]')
}

2 个答案:

答案 0 :(得分:0)

注意:它是getElement s ByClassName

这意味着它返回一个匹配元素的NodeList(类似数组的对象)。

尝试:

submit_button = document.querySelector(".row-button");

这不仅会增加对IE8的支持,还会返回一个元素,这是第一个具有所需类的元素。

答案 1 :(得分:0)

getElementsByClassName("row-button")

返回类"row-button"的元素数组。因此,要获得第一个(并且仅在您的代码中),请使用

 var submit_button = document.getElementsByClassName("row-button")[0];