我正在尝试克隆一个元素并增加一个计数器。除了好奇之外,它运作良好。
我认为这段代码应该更新源代码中的数据属性,但事实并非如此。我尝试过数据标记的一些变体:data('position-id')
data("positionid")
data('positionId')
- 和其他。
我可以让它与attr一起使用,但我想知道为什么没有使用data属性更新源代码。此外,当我从克隆元素中获取值时,它会正确递增,但它不会显示在源代码中。
标记:
<div class="row layout-position" data-position-id="0">
...
和js的相关部分
var clone = $position.clone();
var expression = 'layoutPositionList\\[' + currentId + '\\]';
var expression2 = 'layoutPositionList' + currentId;
var replacement = 'layoutPositionList[' + nextId + ']';
var replacement2 = 'layoutPositionList' + nextId;
var regex= new RegExp(expression, "g");
var regex2= new RegExp(expression2, "g");
var newHtml = clone.html().replace(regex, replacement);
newHtml = newHtml.replace(regex2, replacement2);
clone.html(newHtml);
clone.find('input').val('');
console.debug(clone);
$position.after(clone);
$position.after('<hr />');
// this works
//$(clone).attr("data-position-id", nextId);
// this doesn't
$(clone).data("position-id", nextId);