5

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

当用户单击“添加新行”时,我正在插入新行。现在我必须为输入框设置不同的 id。每次用户单击添加新行按钮时,我都会采用一个静态变量并增加其值。然后我将它的值附加到 id 值让我们说 temp(即 ids 将是temp1temp2等等)。我将变量 xyz 作为 var xyz = "temp" + i(其中 i 是计数器),现在我必须xyz使用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允许将变量用作值参数。

例如:

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);element 是你的输入。

于 2012-11-12T08:23:02.937 回答
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接受两个参数,name类型valueDOMstring。你可以传递任何你想要的值。请注意,它将被转换为字符串:

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

于 2012-11-12T08:57:26.840 回答
-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 回答