簡體   English   中英

識別克隆的DOM元素

[英]Identify cloned DOM element

我正在使用MediumEditor,它是使用contenteditables的WYSIWYG編輯器。 我需要為contentEditable內部的每個元素分配不同的ID,但是(當您按Enter )編輯器將從具有所有屬性的esiting段落中克隆一個段落。 我想知道是否有一種方法可以從被克隆的元素中識別出新的<p>元素? 新元素可以放置在現有元素之前或之后。

更新:

這是一個示例: https : //jsfiddle.net/wwoh7e62/

<div id="container">
    <p id="myid" class="myclass" data-id="myid">some text</p>
</div>

<button onclick="doClone(); myFunc();">clone</button>

<script>
doClone = function() {
    var container = document.getElementById('container');

    var node = container.getElementsByTagName('p')[0].cloneNode(false);

    node.innerHTML = 'cloned node';

    container.appendChild(node);
}

myFunc = function () {
    console.log('my func');
}
</script>

我無法訪問doClone的代碼。 我的代碼應駐留在myFunc函數中。

在輸入小提琴時,我意識到解決方案可能是附加一個事件偵聽器(未克隆),而新節點將是不具有事件偵聽器的節​​點。

更新:

先前分配的id必須與thay相同,以用於標識特定節點。

您可以嘗試以下方法:

  1. 從“ p”中刪除ID

    <div id="container"> <p class="myclass" data-id="myid">some text</p> </div> <button onclick="doClone(); myFunc();">clone</button>

  2. 然后將它們更新到您的Func函數中:

    var length = document.getElementById("container").getElementsByTagName("p").length; for(var i=0; i < length; i++) { document.getElementById("container").getElementsByTagName("p")[i].id = i; }

這有幫助嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM