[英]Add class name for generated Html using jquery
以下是html部分
<li class="main_menu catagory_li" id="cat4">
<p class="ahead"><span class="heading">Item 4</span>
<span class="fright remove">close</span></p>
</li>
當我單擊close
時,我使用以下代碼復制LI
,
$('.remove').live('click',function(){
var closed_elem_id = $(this).parent().parent().attr('id');
s = $(this).parent().parent().clone().wrap('<div>').parent().html();
$('li#'+closed_elem_id).remove();
console.log(s);
});
這將刪除LI
的特定位置並獲取副本並將其存儲在variable s
。
我的要求是在克隆副本中添加名為no-display的<span class="fright remove no-display">close</span>
例如<span class="fright remove no-display">close</span>
。 我嘗試了很多方法,但是失敗了。
請對此提出建議
注意:更新了我的問題
做了一些優化: http : //jsfiddle.net/hKUd6/
像這樣:
$('.remove').live('click',function(){
var pLi = $(this).closest('li');
s = $('<div>').append(pLi.clone().addClass('no-display')).html();
pLi.remove();
console.log(s);
});
這整個事情很草率。 您不需要使用太多的代碼即可完成您要嘗試的簡單任務。
嘗試這樣的事情:
$("li").on("click", ".remove", function(){
var $this = $(this),
liCont = $this.closest("p"),
parentLi = $this.closest("li");
liCont
.clone()
.wrap(
$("<div>").addClass("no-display")
)
.appendTo("body");
parentLi.remove();
});
我們在這里所做的是捕獲任何.remove
元素上的click事件。 我們選擇父級p
(稍后將其克隆以用div
包裝)以及父級li
。 我們克隆p
元素(包括其內容),將其包裝成div
元素(使用DOM腳本創建並添加類),然后將最終產品附加到正文中(如果需要,可以更改它)。 然后,我們刪除原始的li
。
嘗試使用此代碼,它應該可以工作:
$('.remove').live('click',function(){
var closed_elem = $(this).closest("li"); //get the li to be closed/removed
var clonedElem = closed_elem.clone().find("span.remove").addClass("no-display"); //clone the original li and add the no-display class to the span having remove class
closed_elem.remove(); //remove the original li
console.log(clonedElem);
});
請檢查以下代碼行。
首先,您需要使用jquery獲取當前的類名稱:
$('li #cat4').find('span').each(function(){
var classname = $(this).attr('class');
$(this).addClass(classname+' no-display');
});
這不是您任務的完整代碼,而僅僅是一個代碼,通過它您可以獲取當前類,然后向其添加更多所需的字符串並設置新類。
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.