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
答案 0 :(得分:4)
firstChild
(检索第一个子节点)可能是输入元素(空格)之前的文本节点,并且它没有任何id
属性,因此输出将是undefined
。
要解决此问题,请使用Element#querySelector
获取输入元素,或使用firstChildElement
(不广泛支持,检索第一个子元素)属性。
var list = document.getElementById("div-1").querySelector('input').id;
document.getElementById("demo").innerHTML = list;
&#13;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
&#13;
var list = document.getElementById("div-1").firstElementChild.id;
document.getElementById("demo").innerHTML = list;
&#13;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
&#13;
更新或者您可以使用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;
&#13;
<div id="div-1">
<input id="input1">
</div>
<p id="demo"></p>
&#13;
答案 1 :(得分:3)
最简单的答案是:
querySelector
因为div
返回与提供的CSS选择器匹配的第一个节点。你基本上可以找到你需要的一个元素,而不是找到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>
{{1}}
答案 2 :(得分:2)
您必须使用的正确属性是<div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
firstElementChild
答案 3 :(得分:1)
如果您需要元素,可以使用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSMutableDictionary *dict = [arr objectAtIndex:indexPath.row];
if ([arrSelectedItems containsObject:dict]) {
[arrSelectedItems removeObject:dict];
} else {
[arrSelectedItems addObject:dict];
}
if ([[dict valueForKey:@"isSelected"]isEqualToString:@"0"]) {
[dict setObject:@"1" forKey:@"isSelected"];
} else {
[dict setObject:@"0" forKey:@"isSelected"];
}
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
//Here you can show the selected Objects in `UITextField`
self.yourTexField.text = [arrSelectedItems componentsJoinedByString:@","];
}
代替firstElementChild
firstChild
&#13;
var list = document.getElementById("div-1").firstElementChild.id;
document.getElementById("demo").innerHTML = list;
&#13;
或者您可以使用 <div id="div-1">
<input id = "input1" >
</div>
<p id="demo"></p>
来选择第一个子元素。
#div-1 > *:first-child
&#13;
document.querySelector('#demo').innerHTML =
document.querySelector('#div-1 > *:first-child').id
&#13;