0

下面是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>. 我尝试了很多方法,但都失败了。

请就此提出建议

注意:更新了我的问题

4

5 回答 5

1

一点优化:http: //jsfiddle.net/hKUd6/

于 2012-04-19T05:48:45.297 回答
0

这整件事非常草率。您不需要使用尽可能多的代码来完成您正在尝试的简单任务。

尝试这样的事情:

$("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元素上的点击事件。我们选择 parent p(我们稍后将其克隆以用 a 包装div)以及 parent li。我们克隆p元素(包括它的内容),用一个元素(我们使用 DOM 脚本创建并添加类)包装它div,并将完成的产品附加到主体(如果需要,您可以更改它)。然后我们删除原来的li.

于 2012-04-19T05:46:56.743 回答
0

尝试使用此代码,它应该可以工作:

$('.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);
});
于 2012-04-19T05:47:17.740 回答
0

像这样的东西:

$('.remove').live('click',function(){
    var pLi = $(this).closest('li');
    s = $('<div>').append(pLi.clone().addClass('no-display')).html();
    pLi.remove();
    console.log(s);
});
于 2012-04-19T05:46:41.017 回答
0

请检查下面的代码行。

首先,您需要使用 jquery 获取当前类名:

$('li #cat4').find('span').each(function(){
  var classname = $(this).attr('class');
  $(this).addClass(classname+' no-display');
});

这不是您任务的完整代码,而只是一个代码,您可以通过它获取当前类,然后向其中添加更多所需的字符串并设置新类。

谢谢。

于 2012-04-19T05:56:46.090 回答