我在为表中动态添加的输入框设置不同的ID时遇到问题。 问题是:
当用户点击“添加新行”时,我会插入新行。现在我必须为输入框设置不同的id。每次用户点击添加新行按钮时,我都会使用静态变量并增加其值。然后我将其值附加到id值,让我们说temp(即ids将是temp1
,temp2
等等)。我把变量xyz作为
var xyz = "temp" + i
(我是柜台)
现在我必须使用xyz
将setattribute
分配给ID。
但由于setattribute
中的值只能是文字,我如何使用变量代替值?
如果您有任何其他方法,请告诉我。
答案 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类型的name
和value
两个参数。您可以传递任何您想要的值。请注意它将被转换为String:
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
答案 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>'
}