使用javascript为输入元素设置动态不同的id属性

时间:2012-11-12 07:52:51

标签: javascript html

我在为表中动态添加的输入框设置不同的ID时遇到问题。 问题是:

当用户点击“添加新行”时,我会插入新行。现在我必须为输入框设置不同的id。每次用户点击添加新行按钮时,我都会使用静态变量并增加其值。然后我将其值附加到id值,让我们说temp(即ids将是temp1temp2等等)。我把变量xyz作为 var xyz = "temp" + i(我是柜台) 现在我必须使用xyzsetattribute分配给ID。 但由于setattribute中的值只能是文字,我如何使用变量代替值?

如果您有任何其他方法,请告诉我。

5 个答案:

答案 0 :(得分:4)

它也可以是一个包含字符串的变量。

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

<强> Live DEMO

答案 1 :(得分:2)

setAttribute允许将变量用作值参数。

例如:

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

会导致:

<div id="temp1"></div>

答案 2 :(得分:2)

element.setAttribute("id", xyz);元素是你的输入。

答案 3 :(得分: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中的

值只能是文字

规范称setAttribute接受DOMstring类型的namevalue两个参数。您可以传递任何您想要的值。请注意它将被转换为String:

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

请参阅http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082https://developer.mozilla.org/en-US/docs/DOM/element.setAttribute

答案 4 :(得分:-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>'      
          }