JavaScript / CoffeeScript 重命名克隆嵌套的 id div 分配给一个变量

JavaScript / CoffeeScript rename id of cloned nested div assigned to a variable

我想在我的 Rails 应用程序中使用 CoffeeScript 克隆下面 html 中的 outer_div,然后将 inner_divid 更改为mSec 时间戳。

查看

<div class="col-xs-12" id="outer_div">
  <div class="col-xs-3" id="inner_div">
    Hello World
  </div>
</div>

<input type="button" value="Submit" id="submit_button" class="btn add-text-input">

<div class="col-xs-12" id="new"></div>

CoffeeScript

ready = ->
  $("#submit_button").click ->
    date = new Date
    mSec = date.getTime()
    name = $('#outer_div').clone()
    name.attr 'id', mSec          # <-- need to change this line of code
    $("#new").append(name);
  return
$(document).ready(ready)  

name.attr 'id', mSec代码更改了outer_divid,但我想更改inner_divid。我必须对我的代码进行哪些更改才能以“inner_div”为目标?

name 上使用 find 在您的克隆中搜索 #inner_div

name.find('#inner_div').attr(id: mSec)

这将为您提供您所追求的 id 属性,但您仍然会有重复的 id="outer_div" 元素,并且该元素无效 HTML。您也应该更改 name 上的 id 属性;您可能不需要克隆上的 id,因此您可以使用 removeAttr 将其删除:

  name.removeAttr('id').find('#inner_div').attr(id: mSec)

演示:https://jsfiddle.net/ambiguous/rd25b2ey/