[英]set value to array of getElementsByName
我遇到以下情況:
我嘗試了以下方法,但是陷入語法問題:
<!-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
返回一個HTMLElements數組。
該行的語法正確,但是我懷疑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";
============================================
但是,我以非常基本的方式嘗試了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);
奇怪的結果是只有第一個盒子才值錢。 我很高興明白為什么...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.