Table中td标签添加input,childNodes[0].value取不到input的值

本文详细解析了一段HTML代码中因错误的标签换行导致无法通过JavaScript正确获取Input元素值的问题。通过修正HTML结构,确保了代码的正确运行。

错误代码

 <tbody id="beijianList">
 <tr>
 <td class="center" style="background-color:#F5F9F6;border-top:1px solid #d5d5d5;">
   <input id="planMoney${vs.index+1}" style="width:90%;"    value="${var.PE_COUNT}"  />
 </td>
 <tr>
 </tbody>

这样写出来,我用下面代码获取input的值:

 var cl=document.getElementById("beijianList").rows.length;
 for(var i=0;i<cl;i++){
   var oCells = document.getElementById("beijianList").rows[i];
   var nums = oCells.cells[0].childNodes[0].value;
 }

这样获取到的nums是undefined

正确的代码是

 <tbody id="beijianList">
 <tr>
 <td class="center" style="background-color:#F5F9F6;border-top:1px solid #d5d5d5;"><input id="planMoney${vs.index+1}" style="width:90%;"    value="${var.PE_COUNT}"   /></td>
 <tr>
 </tbody>  

原因是我写的input标签前面加了一个换行,导致取值怎么也取不到,标签里面的换行都去掉之后,就能正常获取到值了。
之前一直没注意,今天碰到了,记录一下。

<think>好的,用户遇到了一个JavaScript的语法错误,错误信息是“Uncaught SyntaxError: Unexpected token '.'”,代码是关于遍历DOM元素并输出文本和的。首先,我需要分析错误的原因。 用户提供的代码是: document.getElementById("j_idt13:tvncs:j_idt845:noKnifeHole_input").childNodes.forEach(oo => console.log({oo.innerText, oo.value})); 这个错误通常出现在对象字面量中键的写法不正确的时候。在箭头函数里,用户尝试用简写方式创建对象,但可能语法有误。具体来说,{oo.innerText, oo.value} 这部分有问题,因为对象字面量的键应该是标识符或者字符串,而这里直接用了表达式,需要正确的语法。 正确的做法应该是用方括号表示法或者将表达式作为。比如,应该写成 {innerText: oo.innerText, value: oo.value} 或者使用计算属性名 {['innerText']: oo.innerText, ['value']: oo.value},但这里更常见的是前者。 所以,错误的原因是对象字面量的键没有正确命名,导致解析器遇到点号时无法识别,从而报错。用户可能想用ES6的简写属性名,但变量名不能包含点号,所以需要显式地指定键名。 接下来,我需要给出正确的代码示例,并解释修改的地方。同时,还要考虑用户可能的意图,比如他们可能想遍历子节点并获每个节点的文本内容和属性。此外,还要提醒用户注意childNodes可能包含文本节点,可能需要过滤出元素节点。 然后,生成相关问题时,需要围绕DOM操作、对象字面量语法、错误调试以及替代方法等方面提问,确保问题与用户的当前问题相关,并且能帮助他们进一步理解和避免类似错误。</think>该错误是由于对象字面量的键简写语法错误导致的。修正后的代码如下: ```javascript document.getElementById("j_idt13:tvncs:j_idt845:noKnifeHole_input").childNodes.forEach(oo => { console.log({ innerText: oo.innerText, value: oo.value }); }); ``` 错误原因: 1. 原代码`{oo.innerText, oo.value}`不符合对象字面量的语法规范 2. 对象键名需要是合法的标识符或字符串,不能直接使用表达式 3. 需要显式定义键对关系
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值