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 如何为图像动态分配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

而言,imo的两个最佳选项是1)DOM遍历,或2)操作ID片段

在第一种方法中,您将传递对事件发生的元素(减号)的引用,然后从那里导航DOM以获取相应的文本框(例如,在jQuery中,您可以使用
$(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();
    }
});