正在创建的HTML元素的动态ID

时间:2016-08-04 08:17:32

标签: javascript jquery html

我正在替换表格内的范围>带选项框的td。 我想在创建选项框时为动态值分配一些唯一ID。怎么做到这一点?

已生成唯一ID,我想在创建时在Html中设置此唯一ID。

<td id="tdTest">
    <span id="spanId" class="connectedSlot" style="color:rgb(27,99,173)">Enabled</span>
</td>

$("#"+spanId).replaceWith(function () {
        return "<select class='form-control' id=<<DYNAMIC ID>> style='width:200px;'><option value='0'>Enabled</option><option value='1'>Disabled</option></select>";
});

例如,我将从变量中获取一些值并分配给变量,然后将此变量赋值给id。

var myId = "OptionId"+test;

select class='form-control' id=myId style='width:200px;'>

由于

4 个答案:

答案 0 :(得分:1)

在字符串中使用如下变量:

var unqiueID = "myID123", ret = "";
ret = "<select class='form-control' id='" + unqiueID +"' style='width:200px;'>";

答案 1 :(得分:0)

确保分配唯一值的一种可能方法是跟踪所有可用的ID并分配我们列表中不存在的ID。

getUniqueId()是一个始终返回唯一ID的函数。

function getUniqueId() {

    //get all the ids in this document
    var ids = new Array();
    $('[id]').each(function() { //Get elements that have an id=
      ids.push($(this).attr("id")); //add id to array
    });


    //give some random value to uniqueId
    //if this value is in ids array, then assign a different id and recheck the condition
    var uniqueId;
    while(true) {
        uniqueId = 'some-prefix-' + Math.floor(Math.random() * 10000);
        if($.inArray(uniqueId , ids) == -1) {
            break;
        }
    }
    return uniqueId;
}

答案 2 :(得分:0)

可能的解决方案:

function randomString(length) {
    return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
}

为其他人查看这些问题:link link

答案 3 :(得分:0)

自发布以来已经有好几年了,公认的解决方案对我不起作用。这是这样做的语法:

[id]="unqiueID"