2016-12-10 8 views
0

nameのすべてのフィールドに1を追加するには、JavaScriptを使用して次のHTMLを反復処理する方法を教えてください。たとえば、「account」は「account1」などになります。テーブルからこの行を複製し、2つのフィールドを区別できるようにしたいと考えています。あなたがこれを行うことができますJavaScriptでHTML名前フィールドを変更するには

<td> 
    <select name="account">…</select> 
</td> 
<td> 
    <span> 
     "$ "<input type="text" name="debit" placeholder="100"> 
    </span> 
</td> 
<td> 
    <span> 
     "$ "<input type="text" name="credit" placeholder="100"> 
    </span> 
</td> 
<td> 
    <input type="text" name="reference"> 
</td> 
<td> 
    <input type="text" name="notes"> 
</td> 
<td> 
    <select name="account">...</select> 
</td> 

答えて

1

一つの方法は、ループを使用して、自分の名前を変更する、あなたのテーブル内のあなたの要素を取得するためにquerySelectorAllを使用している:

var inputs = document.querySelectorAll("#myTable [name]") 
inputs.forEach(function(input){ 
    input.name += + "1"; 
}); 

JSFiddle Demo

+0

これは、項目 '​​ 'を除いて、うまくいきました。私はおそらくそれを私の元の質問に含めるべきだったでしょう。 (また、 'id = entryLine1 'を持つ特定の行のテーブル内のすべての要素を選択するわけではありません)。 – cpage

+0

'#myTable input'を' #myTable [name] 'に切り替えました。よく働く! – cpage

+0

@cpageはい、申し訳ありません。質問を再読し、少し答えを変更しました。私は最初にあなたの 'select'要素に気づいていませんでした。 –

0

var all =document.getElementsByTagName("*"); for (var i=0, max=all.length; i < max; i++){ if(all[i].name){ all[i].name+=1; } }

これを試してください。*は、ページのすべての要素を提供します。

関連する問題