5

テーブルに動的に追加された入力ボックスに個別の ID を設定する際に問題に直面しています。問題は:

ユーザーが「新しい行を追加」をクリックすると、新しい行が挿入されます。ここで、入力ボックスに個別の ID を設定する必要があります。ユーザーが新しい行の追加ボタンをクリックするたびに、静的変数を取得し、その値を増やしています。次に、その値を id 値に追加します。temp としましょう (つまり、id は などになりますtemp1) temp2。変数 xyz を var xyz = "temp" + i(ここで i はカウンターです) としxyzましたが、 を使用して IDに割り当てる必要がありsetattributeます。しかし、の値はsetattributeリテラルにしかできないので、値の代わりに変数を使用するにはどうすればよいでしょうか?

他に方法があれば教えてください。

4

5 に答える 5

3

文字列を保持する変数にすることもできます。

var fooId = "foo";
for (var i = 0; i <= 2; i++) {
    document.getElementsByTagName('div')[i].setAttribute('id', fooId + (i + 1));
}

<strong>ライブデモ

于 2012-11-12T08:21:38.367 に答える
2

まず第一にsetattribute、大文字と小文字を区別するため、要素の未定義のプロパティですが、setAttributeもちろん使用可能です。

第二に、絶対に使用する必要はありませんsetAttribute。プロパティを変更するだけidで、まったく同じ効果が得られます。

var el = document.createElement('div'), // your element
    staticPart = 'myUniqId', // your static part of a unique id
    i = 0; // your uniqueness

el.id = staticPart + i; // assign unique id to the element
// el.setAttribute('id', staticPart + i); // does the same, but more verbose

// Let's check if it worked:
el.getAttribute('id'); // "myUniqId0"
el.id; // "myUniqId0"

第三に、どこでそれを見ましたか

setattributeの値はリテラルのみにすることができます

仕様によると、はDOMstring型のsetAttribute2つのパラメーターを受け入れnameます。任意の値を渡すことができます。文字列に変換されることに注意してください。value

el.id = {a: 'b'};
el.id; // "[object Object]"

http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082およびhttps://developer.mozilla.org/en-US/docs/DOM/element.setAttributeを参照してください

于 2012-11-12T08:57:26.840 に答える
2

setAttribute変数を値パラメーターとして使用できるようにします。

例えば:

var ele = document.createElement('div')
var id = 'temp1'
ele.setAttribute('id', id)

次のようになります。

<div id="temp1"></div>
于 2012-11-12T08:22:46.973 に答える
2

element.setAttribute("id", xyz);要素はあなたの入力です。

于 2012-11-12T08:23:02.937 に答える
-1
for(;i<7;i++)
          {document.getElementById("test").innerHTML +='<form  id="form'+f+++'" method="get"><input type="text" id="in'+i+++'" size="12%"><input type="text" id="in'+i+++'" size="12%" ><input type="text" id="in'+i+++'"size="12%"><input type="text" id="in'+i+++'"size="10%" ><input type="text" id="in'+i+++'"size="10%"><input type="text" id="in'+i+++'" size="10%"><input type="text" id="in'+i+++'"size="12%"></form>'      
          }
于 2014-03-24T06:24:17.290 に答える