我遇到以下情况:
我尝试了以下操作,但遇到了语法问题:
<!--html部分->这一行将由动态表代码复制-->
<tr><td><input type=input name=mybox></td></tr>
//js part - variant 1:
document.getElementsByName("mybox").item(j).value = j;
//js part - variant 2:
document.getElementsByName("mybox")[j].setAttribute("value", j);
这些似乎都不起作用。你能建议一个正确的方法吗?
谢谢!
getElementsByName
返回一个HTML元素数组。
这一行的语法正确,但我怀疑j
,您试图设置的值是返回数组的正确索引值。
document.getElementsByName("mybox")[j].setAttribute("value", j);
j
的第一次出现应该是返回数组的索引。如果它是给定名称找到的第一个元素,则为0,如果是第二个,则为1,依此类推。
document.getElementsByName("mybox")[j].value = j;
你的html代码似乎错了,试着放双引号:
<tr><td><input type="input" name="mybox"></td></tr>
我们不知道j
的值是什么以及它是如何设置的。
第一种变体应该有效。只要设定一个合理的值。用于测试:document.getElementsByName("mybox")[3].value = "Test";
还对属性type="input"
和name="mybox"
使用引号
尝试此$("#mybox").eq(j).val("your value");
感谢您的反馈。
Michal的解决方案就是我正在研究的。
document.getElementsByName("mybox")[3].value = "Test";
=======================
然而,我以一种非常初级的方式尝试了Marcel Fülöp提出的第二种变体,并看到了一些奇怪的行为:
//manual assignment of indexes
document.getElementsByName("mybox")[0].setAttribute("value",0);
document.getElementsByName("mybox")[1].setAttribute("value",1);
document.getElementsByName("mybox")[2].setAttribute("value",2);
奇怪的结果是,只有第一个盒子得到了它的值。我很乐意理解为什么。。。