2

私は次のような状況にあります。

  • 動的テーブルを使用する必要があります (行の追加/削除) - 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);
    

    これらのどれも機能していないようです。それを行う正しい方法を提案できますか?

    ありがとう!

  • 4

    6 に答える 6

    1

    getElementsByNameHTMLElements の配列を返します。

    この行には正しい構文がありますがj、設定しようとしている値は、返された配列の正しいインデックス値であるとは思えません。

    document.getElementsByName("mybox")[j].setAttribute("value", j);
    

    の最初のオカレンスはj、返される配列のインデックスでなければなりません。指定された名前で見つかった最初の要素の場合は 0、2 番目の要素の場合は 1 などです。

    于 2013-02-15T12:53:31.083 に答える
    0

    何の価値がjあり、どのように設定されているのかわかりません。

    最初のバリアントが機能するはずです。意味のある値を設定するだけです。テスト目的:document.getElementsByName("mybox")[3].value = "Test";

    また、属性type="input"には引用符を使用し、name="mybox"

    于 2013-02-15T13:00:04.687 に答える
    0

    フィードバックありがとうございます。

    Michalのソリューションは、私が機能するようになったソリューションです。

    document.getElementsByName("mybox")[3].value = "Test";
    

    = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

    しかし、MarcellFülöpによって提案された2番目のバリアントを非常に初歩的な方法で試したところ、奇妙な動作が見られました。

    //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);
    

    奇妙な結果は、最初のボックスだけがその価値を得たということでした。理由を理解できれば幸いです...

    于 2013-02-15T23:20:13.077 に答える
    0

    document.getElementsByName("mybox")[j].value = j;

    于 2013-02-15T12:51:31.823 に答える
    0

    これを試して $("#mybox").eq(j).val("your value");

    于 2013-02-15T13:34:48.680 に答える
    0

    HTMLコードが間違っているようです。二重引用符を入れてみてください:

    <tr><td><input type="input" name="mybox"></td></tr>
    
    于 2013-02-15T12:58:32.127 に答える