簡體   English   中英

將值設置為getElementsByName的數組

[英]set value to array of getElementsByName

我遇到以下情況:

  • 我必須使用動態表格(添加/刪除行)-來自http://viralpatel.net/blogs/dynamically-add-remove-rows-in-html-table-using-javascript/的代碼
  • 行包含名稱不帶id的html輸入框
  • 我需要能夠為這些框設置值

    我嘗試了以下方法,但是陷入語法問題:

    <!-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.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM