2011-08-10 6 views
1

タイトルが少しわかりにくい場合は、寛容にしてください。ここで何をしているのですか?私はJavaScriptを使用してテーブル内に動的なテキストボックスを作っています。たとえば、テーブルに1行を追加し、テキストボックスにインスタンス名tnameを付け、各テキストボックスをユニークにして行末を追加したいので、テキストボックス名はtname1、次にtname2になります。 ..等。ここでは、このテーブルをループしてすべての値を取得する別の関数を作成します。以下は、下のテキストボックスの値を取得するために使用するコードです。私はforループを置いていないb/c私はループが動作することを知っている、b/c私は正しい数の行を持っています。JavaScriptを使用してダイナミックテキストボックス名を取得する

txt = document.getElementById('tname' + a) 
alert(txt.value) 

私はあなたがこの問題を回避置く機能があることを知っている:(「TNAME」+ a)のjavascriptのは、単に機能を覚えて傾ける前に、あなたはそれを一緒に連結B/C私はそれをやったことを知っているように。いずれかが助けることができるならば、それは非常に多くの使用JQuery

+0

完全なコードを投稿してください。 –

答えて

2

をあなたはIDを割り当てた場合は(名前ではない)、その後汚れた、純粋なJavaScriptの仕事は周りです:

var a = 1; 
while (true) { 
    var id = 'tname' + a; 
    var txt = document.getElementById(id); 
    if (txt == null) 
     break; 
    alert("value of " + id + " is: " + txt.value); 
    a++; 
} 

これは何も見つけることができなくなるまで、要素を探し続けます。

1

をいただければ幸いです。

$('input[type="text"]').map(function(){ 
    return (this.value.length > 0) ? this.value : null; 
}).get().join(','); 

の作業のデモ:あなたはIDと名前を使用する必要がhttp://jsfiddle.net/AlienWebguy/wLteQ/

+0

Love 'map()'!そのような便利な機能。 – Maverick

2

それは、このようなタスクを簡素化します。例えば、

<input type="text" name="tname1" /> 

<input type="text" name="tname1" id="tname1"/> 
1

する必要がありますあなたは試してみました:

var els = document.getElementsByName(...); 
// Or if you only focusing on newer browsers: 
var els = document.querySelectorAll(..); 

// els is now a HTMLCollection/NodeList 
console.log(els[0].value);