克隆项目时,是否可以更改所有输入属性和 ID,如下所示;
When cloning an item, is it possible to change ALL the inputs attributes and IDs as this;
代码笔链接以查看实际操作
假设我有这个标记:
<div class="wrapper-1">
<input id="name-1" class="name-input" type="text" name="name"/>
<input id="surname-1" type="text" name="surnamename"/>
<input id="telephone-1" type="text" name="telephone"/>
<input id="email-1" type="text" name="email"/>
<input id="comments-1" type="text" name="comments"/>
</div>
<button>Clone me</button>
而这个JavaScript来处理克隆
$('button').click(function() {
var d = $('div');
var counter = d.length;
var newCounter = new Number(counter + 1);
var cloned = $('.wrapper-' + counter).clone().attr('class', 'wrapper-' + newCounter).fadeIn('slow');
//Finding items that need to have different ID
cloned.find('.name-input').attr('id', '#name-' + newCounter);
//Cloning
$('.wrapper-' + counter).after(cloned);
});
如您所见,带有类.name-input
的输入的 ID 计数器会随着包装器的计数器而变化。
但是,如果我想更改它的名称,以及 4 个较低输入的所有 ID 和名称,我必须手动插入和复制相同的代码:
cloned.find('.name-input').attr('id', '#name-' + newCounter);
想象一下,我有25个。
所以我的问题是:
是否可以插入这样的东西:
cloned.find('input').attr('id', $(this).attr('id') + '-' + newCounter);
我的意思是浏览器会自动解析元素的名称和 ID,并将 counter
变量添加到其中。
当然,在这个给定的示例中,$(this)
将引用触发事件的元素 - button
,但也许这种方法是可能的?
这就是 jQuery each()
函数所做的,例如:
var buttonId = $(this).attr('id');
cloned.find('input').each(function() {
$(this).attr('id', buttonId + '-' + newCounter);
});
each()
函数中的代码是为集合中的每个元素执行的。在此函数中,this
是指当前应用代码的元素。
还有其他jQuery函数的工作方式类似,例如filter()
。
相关文章:
- <输入id=“;“到期”;type=“;月份;min=“;2016-05”>如何填写“;min”;属性与当前
- jquery如何检测当前输入id
- jQuery-如何从同一类中隐藏的输入id中获取不同的值
- 修改序列化表单函数以获取输入ID而不是名称
- 在innerHTML中包含变量值以创建输入id's和占位符
- 将输入id传递到jquery ui自动完成中的url
- 具有相同输入 ID 的多个表单仅使用 Ajax 发送第一个值
- 无法获取使用 event.target.id 触发事件的输入 ID
- 当输入id时,从json文件向警报添加一个图像
- 输入id以一个可变字符串开头
- 当用户在输入id=“”中填充文本时,如何调用函数java脚本;value_ 1”;然后按键盘上的“Enter”
- 如何连接函数参数和输入 ID
- 当我改变选择标记为什么不在输入id=“0”中显示数据时;消息”;
- 如何使用jquery将数字添加到输入ID名称中
- 使用值动态更改输入id-输入类型=范围
- Jquery插入表行并增加输入id
- 以 html 形式输入 ID,并在同一页面中从 MySQL 数据库加载相关数据
- 检测,自动将输入Id更改为当前Id名称
- 输入 id 时如何输出名称
- 从PHP调用JS函数时不能捕获输入ID