我有一個函數可以成功刪除元素,並在頁面的其他地方成功添加它。問題是隻要文檔準備就緒,jQuery就會向移動時丟失的孩子添加類和屬性。我需要這些類和屬性在刪除和追加後保留。我曾想過調用增加類的原始函數,但問題在於它們是基於關鍵的,並且在移動之前依賴於它們的位置,在更改密鑰後調用它,從而添加全新的和不同的類。如何使用jQuery追加一個元素,它的所有子元素以及父類和子元素的所有類
添加的jQuery的類是非常標準:
$(function(){
$("div").each(function(key){
if ($(this).hasClass("container")){
$(this).find("ul").addClass("parent" + key);
$(this).find(".container-item").attr("parentClass", ".parent" + key);
};
});
});
刪除/添加功能:
function copy_item(draggable, target){
var account = clone_items(draggable);
//$('#'+name.uid).remove();
$('#'+name.uid).hide();
target.append(make_div(name, true, true));
//$(draggable).children().attr("class", ($(draggable).children().attr("class")));
}
function make_div(name, drag, drop){
var newdiv = document.createElement('div');
newdiv.setAttribute('id', name.uid);
newdiv.appendChild(make_h3(name.username));
ul = document.createElement('ul');
ul.setAttribute("class", "domain_list");
newdiv.appendChild(ul);
for (j = 0; j < name.domains.length; ++j) {
ul.appendChild(make_li(name.domains[j], drag));
}
return newdiv;
}
最終的結果在HTML基本上是:
<div class="container">
<ul class="parent0">
<li parentClass="parent0">
<li parentClass="parent0">
再現當這個結構中,我需要具有類「parent0」和parentClass屬性不變。在上面,你可以看到我試圖隱藏元素,確保它仍然保持有效的元素具有正確的類/屬性,但最終仍然沒有成功。理想情況下,我可以完全刪除元素並使用正確的類重新創建元素。
是否有可能創建一個JSFiddle? –
您的示例代碼中有很多孤立的引用使得很難評估您做錯了什麼。什麼是'clone_items'?與'make_li'和'make_h3'一樣。 'name'來自'copy_items'內部,它的範圍如何? –
對不起。我確實減少了一些函數,以便讀取,所以clone_items var永遠不會在上面使用。 make_li和make_h3的功能類似於make_div,但是,我的想法是make_div是似乎與這個問題有關的唯一函數。 make_h3創建用戶名,make_li創建一個項目數組來填充各個字段。名稱是一個全局變量。再一次,道歉,有時我不知道該砍什麼和不該砍的東西。 –