如何遍历嵌套的html元素并用另一个ID替换一个ID号?

时间:2019-07-04 14:39:29

标签: javascript jquery html

我们有一段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。

可以做到吗?

1 个答案:

答案 0 :(得分:0)

您可以使用[id]选择器在$container中找到具有id属性的任何元素,然后向prop()提供函数进行更新。您需要执行后者,以确保id属性保持唯一,并且根本不重复它们。

data.find('[id]').prop(id, function(i, id) {
  return id + '_' + i
});

但是,值得注意的是,具有递增的id属性,并在运行时动态生成id属性有点代码味道。通常最好使用通用类,然后使用DOM遍历将元素彼此关联。