使用javascript获取div内第一个输入的id

时间:2017-06-29 18:40:16

标签: javascript html

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

4 个答案:

答案 0 :(得分:4)

firstChild(检索第一个子节点)可能是输入元素(空格)之前的文本节点,并且它没有任何id属性,因此输出将是undefined

要解决此问题,请使用Element#querySelector获取输入元素,或使用firstChildElement(不广泛支持,检索第一个子元素)属性。

&#13;
&#13;
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;
&#13;
&#13;

&#13;
&#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;
&#13;
&#13;

更新或者您可以使用Document#querySelector方法直接选择元素。

&#13;
&#13;
// 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;
&#13;
&#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

https://jsfiddle.net/sureshatta/u2q7jpk0/

答案 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

&#13;
&#13;
firstChild
&#13;
var list = document.getElementById("div-1").firstElementChild.id;
    document.getElementById("demo").innerHTML = list;
&#13;
&#13;
&#13;

或者您可以使用 <div id="div-1"> <input id = "input1" > </div> <p id="demo"></p>来选择第一个子元素。

&#13;
&#13;
#div-1 > *:first-child
&#13;
document.querySelector('#demo').innerHTML =
    document.querySelector('#div-1 > *:first-child').id
&#13;
&#13;
&#13;