JavaScript - 多次创建具有相同属性的Label

时间:2013-12-07 15:55:31

标签: javascript

我正在使用JavaScript来创建Label对象。应在事件发生时创建此Label对象。一切都很好。但是,当再次触发相同的事件时,这就是我遇到问题的地方:"adding element with duplicate id"。我试图销毁/删除Label对象,并在每次触发事件时创建它。但没有运气。任何建议??

请建议,如何一次又一次地重新创建具有相同属性的Label对象?

请找到代码

switch(locDetail)
        {
            case 'K1':
                klocation = "INDIA";
                //var oLocLabel1 = null;
                //alert("INDIA");
                //document.getElementById('LocLabelContent').innerHTML = "";
                var oLocLabel1 = new sap.ui.commons.Label("LocationDetailsLabel1");
                oLocLabel1.setText(klocation);
                oLocLabel1.placeAt("LocLabelContent1");
                //delete oLocLabel1;
                //document.getElementById('LocLabelContent').innerHTML = klocation;
                oLocLabel1.destroy();
                break;

如果我们创建一个具有新属性的对象(附加一个计数器)。这会不会造成额外的对象吗?

1 个答案:

答案 0 :(得分:0)

我猜你正在创建一个标签元素,如果是这样你就可以创建包含所有属性的标签,只需在每次需要新属性时克隆它,并设置ID为越来越多的柜台获得独特的ID,如:

var label   = document.createElement('label'),
    counter = 0;

label.innerHTML = 'some label text';
label.style.color = 'red';

someElement.addEventListener('click', function() {
    var lbl = label.cloneNode(true);
    lbl.id  = 'label_' + (++counter);

    document.body.appendChild(lbl);

}, false);