javascript - OnClick of button,增加div它为javascript中的每个字段提供动态ID

标签 javascript jquery html css

我有一个场景,用户点击 button 最多可以添加 12 具有相同 HTML 的 div。相同的 html 如下所示

<div id="dvNPEAddData">
  <div id="dvNPEInnerData">
    <label>Terminated route name</label>
    <input type="text" id="txtTerRouteName" />

    <label>Cable Type</label>
    <select id="ddlCableType">
            <option value="--Select--">--Select--</option>
      <option value="G652">G652</option>
      <option value="G655">G655</option>
        </select>

    <label>Cable Size</label>
    <select id="ddlCableSize">
            <option value="--Select--">--Select--</option>
            <option value="12F">12F</option>
            <option value="24F">24F</option>
            <option value="48F">48F</option>
    </select>

    <label>No of Live Fibre</label>
    <input type="text" id="txtNoLiveFibre" />
  </div>
</div>

按钮也在下方,上面的整个 div 中的哪个将使用动态 ID

再次创建
<label>ADD NPE +</label>
<input type="button" id="btnAddNPE" value="Add NPE" onclick="addNPEInfo()" />

为此,我尝试了类似下面的方法......!

var div = document.getElementById('dvNPEInnerData'),
    clone = div.cloneNode(true);
 clone.id = "dvNPEInnerData1";
 //document.body.appendChild(clone);
 document.getElementById('dvNPEAddData').appendChild(clone);

div 已正确生成,但问题是每个控件的 ID 未生成,例如 input = textselect

So how should I use this so that it can generate same html with dynamic ID's

最佳答案

尝试以下代码。

var appendNewId=1;
function addNPEInfo(){
    if(appendNewId>12){
        alert("Maximum 12 rows allowed");
        return;
    }
    var div = document.getElementById('dvNPEInnerData'),
    clone = div.cloneNode(true); 

    appendId(clone, "div", appendNewId);
    appendId(clone,"select", appendNewId);
    appendId(clone,"input", appendNewId);
    appendId(clone,"label", appendNewId);

    clone.id = "dvNPEInnerData"+appendNewId;
    //document.body.appendChild(clone);
    document.getElementById('dvNPEAddData').appendChild(clone);
    appendNewId++;
}
function appendId(clone,tag, id){
    var ele = clone.getElementsByTagName(tag);
    for(i in ele){
        ele[i].id = ele[i].id+id;
    }
}

根据需要更改 appendNewId 的值。

关于javascript - OnClick of button,增加div它为javascript中的每个字段提供动态ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526737/

相关文章:

javascript - 如何在angularJS列表中添加项目?

javascript - 这段 jQuery 代码我做错了什么?

javascript - 如何自动刷新jqgrid?

javascript - 检测未处理的鼠标事件

Javascript 嵌套函数 - 需要帮助返回结果

javascript - 如何在我的网站上将我的按钮居中?

javascript - Bootstrap 3.3.5 - 导航栏切换按钮在 iphone 上不起作用

javascript - jQuery .width() 和 css ('width' ) 返回无效值

javascript - 如何在ajax请求后显示结果

javascript - 如何在 Mongoose 中添加集合?