Javascript 无法在动态创建的输入id上获取DocumentById

Javascript 无法在动态创建的输入id上获取DocumentById,javascript,Javascript,我有下面的html <table> <tr ng-repeat="refNumber in Dc.Data"> <td> {{refNumber.label}}: &nbsp; </td> <td ng-if="refNumber.isFlowerRequired && refNumber.value != null">

我有下面的html

<table>
    <tr ng-repeat="refNumber in Dc.Data">
        <td>
            {{refNumber.label}}: &nbsp;
        </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);
});