js取值,取不到,alert显示“undefined”

图片说明图片说明

var tel = document.getElementById("t").childNodes[0].value;
取到的tel的值,alert是undefined
为什么?

标准浏览器下childNodes会将文本节点(包括空白节点)算在内,所以childNodes[0]实际是你td的第一个元素空白节点,改为

 var tel=document.getElementById('t').getElementsByTagName('input')[0].value

你这里应该用childNodes[1].value 或者是 children[0].value

你这种是用了 自定义 标签,在 谷歌浏览器 右键这个 控件 检查,看看值放哪了

你对应的元素里没有value=“”这个属性啊,当然取不到

用 children 不要用 childNodes
childNodes 获取的是所有元素(所有元素包含 文本信息、html节点 等等)。
children 获取的是所有html节点

你这的childNodes获取的是

中的所有元素,什么叫所有元素呢?包括回车都算一个元素,你的td里看似只有三个标签
元素,但其实childNodes中总共有7个元素。childNodes[0]中存的是文本回车信息。
所以你要么childNodes[1]或children[0].value这么写,要么别回车