HTML
<div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
JAVASCRIPT
var list = document.getElementById("div-1").firstChild.id;
document.getElementById("demo").innerHTML = list;
我得到的输出是:
Undefined
HTML
<div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
JAVASCRIPT
var list = document.getElementById("div-1").firstChild.id;
document.getElementById("demo").innerHTML = list;
Undefined
firstChild
(用于检索第一个子节点)可能是输入元素之前的文本节点(空格),它没有任何id
属性,因此输出结果将为undefined
。Element#querySelector
来获取输入元素,或者使用firstChildElement
(不被广泛支持,用于检索第一个子元素)属性。
var list = document.getElementById("div-1").querySelector('input').id;
document.getElementById("demo").innerHTML = list;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
var list = document.getElementById("div-1").firstElementChild.id;
document.getElementById("demo").innerHTML = list;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
更新:或者你可以直接使用Document#querySelector
方法选择元素。
// you can use css selector with querySelector
// which only gets the first element from them
var list = document.querySelector('#div-1 input').id;
document.getElementById("demo").innerHTML = list;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
var inputID = document.querySelector("#div-1 input").id;
querySelector
返回与提供的CSS选择器匹配的第一个节点。你可以实际上只找到你需要的那个元素,而不是找到div
,然后查找它的第一个子节点。var inputID = document.querySelector("#div-1 input").id;
document.getElementById("demo").textContent = inputID;
<div id="div-1">
<input id = "input1" >
<input id = "input2" >
<input id = "input3" >
</div>
<p id="demo"></p>
firstElementChild
。var list = document.getElementById("div-1").firstElementChild.id;
document.getElementById("demo").innerHTML = list;
firstElementChild
代替firstChild
。
var list = document.getElementById("div-1").firstElementChild.id;
document.getElementById("demo").innerHTML = list;
<div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
或者你可以使用#div-1 > *:first-child
来选择第一个子元素,无论它是什么。
document.querySelector('#demo').innerHTML =
document.querySelector('#div-1 > *:first-child').id
<div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
document.querySelector("#div-1 input").id
呢? - Scott Marcus