Javascript 如何为图像动态分配id var intFields=0; var maxFields=10; 函数addElement(){ “严格使用”; 变量i,intVal,contentID,newTBDiv,message=null; intVal=document.getElementById('add').value; contentID=document.getElementById('content'); message=document.getElementById('message'); 如果(intFields!==0){ 对于(i=1;i
而言,imo的两个最佳选项是1)DOM遍历,或2)操作ID片段 在第一种方法中,您将传递对事件发生的元素(减号)的引用,然后从那里导航DOM以获取相应的文本框(例如,在jQuery中,您可以使用Javascript 如何为图像动态分配id var intFields=0; var maxFields=10; 函数addElement(){ “严格使用”; 变量i,intVal,contentID,newTBDiv,message=null; intVal=document.getElementById('add').value; contentID=document.getElementById('content'); message=document.getElementById('message'); 如果(intFields!==0){ 对于(i=1;i,javascript,html,forms,dynamic,Javascript,Html,Forms,Dynamic,而言,imo的两个最佳选项是1)DOM遍历,或2)操作ID片段 在第一种方法中,您将传递对事件发生的元素(减号)的引用,然后从那里导航DOM以获取相应的文本框(例如,在jQuery中,您可以使用$(this).prev()) 在第二种方法中,您将为触发元素的ID(减号)分配前缀或后缀,并为目标元素(文本框)分配相同的前缀或后缀。然后,您可以(再次)通过简单的字符串操作触发元素的ID来为目标元素生成适当的ID 这就足以让您开始了吗?尝试在字段中添加一个类,在减号中添加相同的类 所以在setAttr
$(this).prev()
)
在第二种方法中,您将为触发元素的ID(减号)分配前缀或后缀,并为目标元素(文本框)分配相同的前缀或后缀。然后,您可以(再次)通过简单的字符串操作触发元素的ID来为目标元素生成适当的ID
这就足以让您开始了吗?尝试在字段中添加一个类,在减号中添加相同的类 所以在setAttribute id后面加上这个
var intFields = 0;
var maxFields = 10;
function addElement() {
"use strict";
var i, intVal, contentID, newTBDiv, message = null;
intVal = document.getElementById('add').value;
contentID = document.getElementById('content');
message = document.getElementById('message');
if (intFields !== 0) {
for (i = 1; i <= intFields; i++) {
contentID.removeChild(document.getElementById('strText' + i));
}
intFields = 0;
}
if (intVal <= maxFields) {
for (i = 1; i <= intVal; i++) {
intFields = i;
newTBDiv = document.createElement('div');
newTBDiv.setAttribute('id', 'strText' + intFields);
newTBDiv.innerHTML = "<input placeholder='recipient" + intFields + "@email.com' type='text' name='" + intFields + "'/><a href='javascript:removeElement();'><img id='strImg + " + intFields + "' src='images/minus.png' alt='Add A Field'/></a><input type='text' value='" + newTBDiv.id + "'/>";
contentID.appendChild(newTBDiv);
message.innerHTML = "Successfully added " + intFields + " fields.";
}
} else {
for (i = 1; i <= maxFields; i++) {
intFields = i;
newTBDiv = document.createElement('div');
newTBDiv.setAttribute('id', 'strText' + intFields);
newTBDiv.innerHTML = "<input placeholder='recipient" + intFields + "@email.com' type='text' name='" + intFields + "'/><a href='javascript:removeElement();'><img id='strImg + " + intFields + "' src='images/minus.png' alt='Add A Field'/></a><input type='text' value='" + newTBDiv.id + "'/>";
contentID.appendChild(newTBDiv);
message.innerHTML = "Unable to create more than 10 receipient fields!";
}
}
}
然后删除所有具有该类的元素。您可以将一个类添加到名为减号的字段中,然后像这样进行检查。我建议使用jquery进行此操作 添加类的步骤
newTBDiv.setAttribute('class', 'field' + intFields);
删除该类中的所有元素
$("#element").addClass("minus");
$("body input").each(function (i) {
if($(this).attr("class") == "minus"){
$(this).remove();
}
});