Javascript 无法在动态创建的输入id上获取DocumentById
我有下面的htmlJavascript 无法在动态创建的输入id上获取DocumentById,javascript,Javascript,我有下面的html <table> <tr ng-repeat="refNumber in Dc.Data"> <td> {{refNumber.label}}: </td> <td ng-if="refNumber.isFlowerRequired && refNumber.value != null">
<table>
<tr ng-repeat="refNumber in Dc.Data">
<td>
{{refNumber.label}}:
</td>
<td ng-if="refNumber.isFlowerRequired && refNumber.value != null">
<input type="text" id="{{refNumber.refId}}" ng-value="refNumber.value != null ? refNumber.value : ''" />
</td>
<td ng-if="refNumber.isFlowerRequired && refNumber.value == null">
<input type="text" id="{{refNumber.refId}}" />
</td>
</tr>
</table>
我遇到TypeError:无法读取null的属性“value”
网上搜索给了我一些提示,但没有任何东西能帮我解决这个问题
感谢您的帮助。在调用document.getElementById时,您不应该在refId周围添加引号。UID中没有引用 您正在将Dc.Data筛选为仅包含isRequired集合的元素。但是你只是用它来获得迭代次数,你实际上并没有处理那些相同的元素。您应该迭代过滤后的数组
Dc.Data.filter(val => val.isRequired).forEach(d => {
var refNumText = document.getElementById(d.refId).value;
console.log(refNumText);
});
关闭原因?您有重复的id={{refnumber.refId}。ID应该是唯一的。'+Dc.Data[i].refId+'可能应该是Dc.Data[i].refId.@connexo,试过了。返回相同的错误。@connexo似乎是对的,如果这没有帮助,您能否在生成包含ID的html后发布它?var refNumText=document.getElementByIdDc.Data[i].refId.value;返回相同的错误。这就是我感到困惑的原因。我很乐意提供更多信息,但不确定要添加什么。您没有正确处理ISRequested集合中的元素。我已经更新了答案。
Dc.Data.filter(val => val.isRequired).forEach(d => {
var refNumText = document.getElementById(d.refId).value;
console.log(refNumText);
});