如何更新特定输入字段的值而不是td第一个孩子?

时间:2018-09-04 07:21:37

标签: javascript html arrays forms html-table

我已将此代码添加到javascript中的函数中,并且在用户单击按钮将行上移或下移后,已成功使用行的新值更新了第一个TD表,问题是我正在使用输入此td中的字段,输入被删除,现在的值只是一个简单的文本/数字字符。

如何更改此代码段以更新第一个td内的输入字段,而不是用输入字段外的新值替换td内容。

Array.prototype.forEach.call(document.querySelectorAll('td:first-child'),
  function (elem, idx) { elem.innerHTML = idx + 1; }
)

好的,所以在Archers的帮助下,我更新了下面的代码,现在有了我想要的功能。感谢所有参加这个新手教育的人;)

        Array.prototype.forEach.call(document.querySelectorAll('td:first-child input[name^=sort]'), function (elem, idx) {
        elem.value = idx + 1;

通过更改

 'td:first-child'

 'td:first-child input[name^=sort]'

我能够引用特定的输入字段,而不是第一td列中的所有输入字段,并且不再用纯文本替换输入字段。

2 个答案:

答案 0 :(得分:2)

您可以将选择器更改为目标输入,而不是输入中的单元格。

Array.prototype.forEach.call(document.querySelectorAll('td:first-child input'),
    function (elem, idx) {
        elem.value = idx + 1;
    });

答案 1 :(得分:0)

或者您可以使用代码来更改其主体,如下所示:

Array.prototype.forEach.call(document.querySelectorAll('td:first-child'), function(elem, idx){
     (elem.querySelector("input")||{}).value=idx+1; //use this line instead of your forEach body
});

Try it online!