我已经更改了 Milan Jaric 在这个问题中给出的代码 Jquery Clone Form Fields and increment ID但我遇到了一个问题,我正在尝试克隆 Bootstrap 崩溃。我不知道如何更改属性“aria-control”值。
这是the demo我目前拥有的。 ID 和 HREF 本身工作得很好,但是当我尝试更改“aria-control”值时, Bootstrap 崩溃中的所有 id 和 href 都不会更改默认值。有什么想法吗?
JS脚本
var regex = /^(.*)(\d)+$/i;
var cloneIndex = $(".clonedBox").length;
function clone() {
$(this).parents(".clonedBox").clone()
.appendTo("div#accession_boxes")
.attr("id", "clonedBox" + cloneIndex)
.find("*")
.each(function () {
var id = this.id || "";
var match = id.match(regex) || [];
if (match.length == 3) {
this.id = match[1] + (cloneIndex);
this.href = match[1] + (cloneIndex);
this.attr("a[aria-controls]") = match[1] + cloneIndex;
}
})
.on('click', '#btnAddBox', clone)
.on('click', '#btnDelBox', remove);
cloneIndex++;
}
function remove() {
$(this).parents(".clonedBox").remove();
}
$("#btnAddBox").on("click", clone);
$("#btnDelBox").on("click", remove);
是的,我知道我的删除按钮不起作用,但这不是现在的优先事项。
编辑:
感谢lmgonzalves,JS 脚本现在可以工作了。以下是更新后的脚本。再次感谢您的所有帮助!
JS 脚本(已更新)
var regex = /^(.*)(\d)+$/i;
var cloneIndex = $(".clonedBox").length;
function clone() {
$(this).parents(".clonedBox").clone()
.appendTo("div#accession_boxes")
.attr("id", "clonedBox" + cloneIndex)
.find("*")
.each(function () {
var id = this.id || "";
var href = this.href || "";
var aria = $(this).attr("aria-controls") || "";
var matchID = id.match(regex) || [];
var matchHref = href.match(regex) || [];
var matchAria = aria.match(regex) || [];
if (matchID.length == 3) {
this.id = matchID[1] + (cloneIndex);
this.href = matchHref[1] + (cloneIndex);
this.aria = matchAria[1] + (cloneIndex);
}
})
.on('click', '#btnAddBox', clone)
.on('click', '#btnDelBox', remove);
cloneIndex++;
}
function remove() {
$(this).parents(".clonedBox").remove();
}
$("#btnAddBox").on("click", clone);
$("#btnDelBox").on("click", remove);
最佳答案
使用 attr() 设置属性你需要这个语法:
$(element).attr("name", value);
因此在您的代码中使用:
$(this).attr("aria-controls", match[1] + cloneIndex);
相反:
this.attr("a[aria-controls]") = match[1] + cloneIndex;
请注意,您还需要用 $()
“包装”this
将其转换为 jQuery 对象并允许使用 attr()
和其他 jQuery 函数。
关于javascript - 更改克隆字段中的 aria-control 属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947373/