Javascript 如何从DOM元素引用到DOM元素?

Javascript 如何从DOM元素引用到DOM元素?,javascript,Javascript,我知道有很多类似的问题,我已经仔细研究过了。这还不够。所以 在这种情况下,我需要复制一个元素,并知道我从中克隆的原始元素,所以我这样做很难看: <div id="main"> <p>Hello</p> </div> 现在这是非常丑陋的,因为我从我克隆的原始元素附加了ID。在我的情况下,我不知道元素是否有ID,因此我可以生成一个随机ID并按如下方式分配: var id = $(element).attr('id'); if (!id) {

我知道有很多类似的问题,我已经仔细研究过了。这还不够。所以

在这种情况下,我需要复制一个元素,并知道我从中克隆的原始元素,所以我这样做很难看:

<div id="main">
  <p>Hello</p>
</div>
现在这是非常丑陋的,因为我从我克隆的原始元素附加了ID。在我的情况下,我不知道元素是否有ID,因此我可以生成一个随机ID并按如下方式分配:

var id = $(element).attr('id');

if (!id) {
  var id = 'id_'+ Math.round(Math.random()*99999999);
  $(element).attr('id', id);
}

$(somewhere).append(
                    $(element)
                    .clone()
                    .attr('src', id)
));
我的解决方案对我来说似乎很肮脏,我当然有可能发生冲突,所以。。。我想知道从另一个元素引用DOM元素的干净方法

更新


总之,我使用了jQuery的
.uniqueId().
,并简单地通过
.attr()
$(el).attr('src',$(parent.attr('ID'))那样附加元素ID

您可以在DOM中查询具有生成的ID的元素。如果没有找到任何东西,那么它是唯一的,如果有这样一个元素,则用一个新的随机ID重复该元素。

这样尝试

<div class="main">
<p>Hello</p>
</div>
如果要向元素添加唯一ID,则可以从jquery1.9.1开始这样做

currentObj.uniqueId();
clonedElement.uniqueId();

使用类名并使用自定义属性修改新(克隆)元素:

HTML

<div class="main">
  <p>Hello</p>
</div>

这和我描述的一样,但我觉得必须有另一种方法。。仍然+1您没有显示问题的第二部分。他想知道原始元素。
currentObj.uniqueId();
clonedElement.uniqueId();
<div class="main">
  <p>Hello</p>
</div>
currentObj = $(".main");

//Object of the cloned element
clonedElement = currentObj.clone().addClass("cloned");

//Assign a reference with custom property
clonedElement[0].clonedFrom = currentObj;

$(somewhere).append(clonedElement);