jquery - 如何更改已分配给 JQuery 中变量的 div 中元素的 id?
问题描述
如果我有一些带有嵌套元素的 html:
<body id="body">
<div id="outer-div-0">
<div id="inner-div-0">
</div>
</div>
</body>
还有一些将外部 div 分配给变量的 JQuery:
var $div = $('div[id^="outer-div-"]:last');
我可以使用$div
变量来更改 idinner-div-0
吗?
我这样做是因为我有一些 JQuery 会outer-div-0
在用户单击按钮时克隆,因为用户可能需要 div 的多个实例(这是一个输入表单,所以我必须使用允许用户添加和减去的按钮需要多少份表格)。我已经有一些代码可以为每个克隆增加外部 div 的 id。所以现在,当我点击按钮添加一个新的 div 时,它最终看起来像
<body id="body">
<div id="outer-div-0">
<div id="inner-div-0">
</div>
</div>
<div id="outer-div-1">
<div id="inner-div-0">
</div>
</div>
</body>
这是执行此操作的 JQuery:
var $div = $('div[id^="outer-div-"]:last');
initNum = parseInt($div.prop("id").match(/\d+/g), 10) + 1;
var $newDiv = $div.clone().prop('id', 'outer-div-' + initNum);
$("#body").append($newDiv).html();
当然,我还必须增加内部 div 的 id,但我无法弄清楚。
我应该补充一点,我使用 id 作为内部 div,因为它们具有带有for
属性的标签。为简单起见,我将它们省略了,因为它们并没有真正增加问题。另外,实际的代码有不止一个inner-div。再次,为了简单起见,省略了。
关于如何做到这一点的任何想法?几个小时以来,我一直在挠头。谢谢!
解决方案
您可以.find()
在克隆的 DIV 上使用
$newDiv.find("[id^=inner-div-]").attr('id', 'inner-div-' + initNum);
推荐阅读
- reactjs - 带有反应的图像滑块
- javascript - WebSocket 连接到“ws://localhost:8000/”失败:WebSocket 握手期间出错:意外响应代码:403
- python - 无法使用 Python3 和 Selenium 定位 id 元素
- python - 在 c# 上运行带有参数的 python 脚本并且在 cmd 上不会崩溃
- cmake - 确定提供给 cmake_parse_arguments() 的 one_value_keyword 是否没有值
- python - 如何在类 python tkinter OOP 中使用命令更改按钮的背景?
- javascript - 怎么去掉空的
使用 JavaScript 或 Cheerio 从字符串中标记标签?
- json - .map 没有返回值(不是函数)
- ruby - 有没有办法使用鞋子生成随机整数?
- c - C-问题:如何将主方法参数传递给方法的字符串变量?