更改克隆字段中的 aria 控件属性值
Changing aria-control attribute value in Cloned fields
>我已经更改了米兰·贾里克(Milan Jaric)从这个问题中给出的代码 Jquery 克隆表单字段和增量 ID,但我遇到了一个问题,我正在尝试克隆引导程序折叠。我看不到如何更改属性"aria-control"值。
这是我目前拥有的演示。 ID 和 HREF 本身工作正常,但是当我尝试更改"aria-control"值时,引导折叠中的所有 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函数。
在这里演示
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 向ASP控件添加自定义事件
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 当用户点击音频控件时,无法接收点击事件
- 在codeigniter中具有控件的looper.js
- 更改克隆字段中的 aria 控件属性值