我遇到以下情况:
我尝试了以下方法,但遇到语法问题:
<! - html part - >此行将由动态表格代码复制 - >
<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);
这些似乎都不起作用。 你能建议一个正确的方法吗?
谢谢!
答案 0 :(得分:1)
getElementsByName
返回一个HTMLElements数组。
此行具有正确的语法,但我怀疑j
,您尝试设置的值是返回数组的正确索引值。
document.getElementsByName("mybox")[j].setAttribute("value", j);
j
的第一次出现应该是返回数组的索引。如果它是给定名称找到的第一个元素,则为0,如果是第2个,则为1,等等。
答案 1 :(得分:0)
document.getElementsByName("mybox")[j].value = j;
答案 2 :(得分:0)
您的HTML代码似乎有误,请尝试使用双引号:
<tr><td><input type="input" name="mybox"></td></tr>
答案 3 :(得分:0)
我们不知道j
的价值是什么以及它是如何设置的。
第一个变体应该有效。只需设置一个有意义的值。
出于测试目的:document.getElementsByName("mybox")[3].value = "Test";
还要为属性type="input"
和name="mybox"
答案 4 :(得分:0)
试试这个$("#mybox").eq(j).val("your value");
答案 5 :(得分:0)
感谢您的反馈。
Michal的解决方案是我工作的解决方案。
document.getElementsByName("mybox")[3].value = "Test";
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
然而,我按照MarcellFü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);
奇怪的结果只是第一个盒子得到了它的价值。我很高兴明白为什么......