JQuery动态地将id分配给动态生成的div,在contenteditable div中

时间:2013-03-12 14:02:00

标签: javascript jquery html contenteditable attr

<div class="pad" id="test" contenteditable="true" spellcheck="false">
    <div id="a0" class="lines" > text1</div>
</div>

我有一个内容可编辑的div,里面有很多子div,当用户按下ENTER键(使用jQuery)转到下一行时,它会动态生成。子div的例子是上面的一个 id = 'A0'的。         

目标:要动态生成唯一ID并将其分配给这些动态生成的子div。

以下是我用来完成此任务的jQuery。

function getSelectedNode()

这是返回用户当前正在键入的行(即子div)的'id'的函数。

var lineCount=0;

lineCount 变量的值等于生成的子div总数。

 $(currentLine).next().attr('id','a'+(++lineCount));

此处currentLine包含用户当前正在键入的行的 id 。按ENTER键,在当前div之后自动生成新div,我尝试使用{{1并尝试使用.next()为其分配新ID。

如果我在jQuery的selector子句中传递绝对值,即分配新id的过程很有效,即:

  

$( '#A0')的next()ATTR( 'ID', 'A' +(++ lineCount));

而不是

  

$(currentLine)的.next()ATTR( 'ID', 'A' +(++ lineCount));

.attr('id','a'+(++lineCount))

1 个答案:

答案 0 :(得分:0)

Javascript是单线程的,因此您可以使用int ...

var indexer = 0;
function getUniqueId(){
   indexer++;
   return indexer.toString();
}

警告:我不建议在大多数Web应用程序中在文档级别声明函数和属性。一旦你掌握了这个方法,它就很容易实现......

$("<div id='myDiv" + getUniqueId() + "' />");