我们有一段html用于创建对象,然后将其传递给克隆数据的函数。
我们正在尝试获取克隆的数据,并用已在其他位置动态设置的新ID替换公共ID。以下是我们所得到的:
// This is the cloned data we have got
var data = this.$container.find('.fields').clone();
// This is the id we are getting to find in the cloned html above
var id = this.$container.data('id');
// This is where we need to go through all html and replace the id above in here with whatever we need
var replacedHtml = data.innerHtml().replace(id,'test');
// the cloneVariant function takes the data and does some good stuff with it. The $.parseHTML(replacedHtml) takes the string html and makes the dom element that goes into the coneVariant function.
this.matrix.cloneVariant(this.$container,$.parseHTML(t));
我需要做的是用字符串替换html中找到的id。
可以做到吗?
答案 0 :(得分:0)
您可以使用[id]
选择器在$container
中找到具有id
属性的任何元素,然后向prop()
提供函数进行更新。您需要执行后者,以确保id
属性保持唯一,并且根本不重复它们。
data.find('[id]').prop(id, function(i, id) {
return id + '_' + i
});
但是,值得注意的是,具有递增的id
属性,并在运行时动态生成id
属性有点代码味道。通常最好使用通用类,然后使用DOM遍历将元素彼此关联。