【问题标题】:Append is working but remove is not working in jquery追加工作但删除在jQuery中不起作用
【发布时间】:2012-06-24 12:43:46
【问题描述】:

将列表 (anotherList) 附加到第二个列表 (id= myList-toggle) 的项目 (id -= l1) 所需的代码,但应在再次单击后将其删除。但是删除没有按预期工作。预计在这方面会有一些帮助。

 $('a#myList-toggle').click(function () {

                list.slice(0, counter()).slideToggle();

                 return false;

            });

            $('a#l1').click(function () {


                $('#l1').append($('#anotherList'));
               function () {
                   $('#al1').remove();
                };
                $('#anotherList').show();
                return false;

            });

        });



    </script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <div>
        <a href="#" id="myList-toggle">GO Now!!!!!!!</a></div>
    <ul id="myList" style="margin-bottom: 0px">
        <li><a href="#" id="l1">item1</a></li>
        <li><a href="#" id="l4">item2</a></li>
        <li><a href="#" id="l5">item3</a></li>
        <li><a href="#" id="l6">item4</a></li>
        <li><a href="#" id="A1">item5</a></li>
        <li><a href="#" id="A2">item6</a></li>
        <li><a href="#" id="A3">item7</a></li>
        <li><a href="#" id="A4">item8</a></li>
    </ul>
    <ul id="anotherList">
        <li class="al1">Item</li>
        <li class="al1">Item</li>
        <li class="al1">Item</li>
        <li class="al1">Item</li>
    </ul>
</asp:Content>

请告知是否有任何其他简单的方法来附加和删除列表。

【问题讨论】:

  • 什么不是预期的?它不删除?它删除了错误的东西?代码停止执行?如果是,在哪里?
  • 感谢您的回复 Th0rndike !!!!!!它什么也没做。它工作正常,但点击后不做任何事情。
  • 移除包裹$('#al1').remove()的function(){}
  • 移除了函数 (){ 包裹在 remove() 上。它附加列表,但无助于在另一次点击中删除。

标签: jquery list append


【解决方案1】:

也许你打错了?

$('a#l1').remove();

您输入的是 #al1 而不是 a#l1

或者你想选择班级?

$('.al1').remove()

class 的选择器是 .id 的选择器是 #

【讨论】:

  • 感谢您的回复!但是代码需要删除附加的列表。 $('a#l1').remove() 将删除第一个列表中附加另一个列表 (id= anotherList) 的原始项目。
【解决方案2】:

你有一个没有名字的函数语句:

           function () {
               $('#al1').remove();
           };

这在 Javascript 中无效,并且您的代码可能会引发错误,从而停止您的脚本执行。

您的 HTML 中没有带有 id="al1" 的元素,因此 $('#al1') 没有选择任何内容。其他答案建议您需要$('a#l1')$('.al1'),但不清楚您究竟要删除什么。

当您单击a#l1 时,您似乎正试图切换#anotherList 的可见性。可能更好的方法是从一开始就将#anotherList 渲染为a#l1 元素的子元素,然后在click 处理程序中执行$('#anotherList').toggle()。如果您希望它以隐藏状态开始,您可能需要将#anotherList 的初始样式设置为display: none

【讨论】:

  • 移除了函数 (){ 包裹在 remove() 上。它会附加列表,但无法在另一次点击中删除。
  • 嗨兰兹!!!!我的意图是将另一个列表附加到第一个列表的项目中,并在另一个点击中删除附加的列表。
【解决方案3】:

尝试将$('#al1').remove(); 更改为$('.al1').remove();

另外,删除之前的function() { 是什么?

我认为没有必要。

编辑:

试试这个链接:http://jsfiddle.net/9dVXg/

我认为这就是你想要发生的事情。

【讨论】:

  • 如果 functino (){ 被删除,它不会将列表附加到第一个列表中的 l1 项。
  • 我说的是 function() { 环绕 remove()。正如其他用户已经指出的那样。
  • 感谢 MegaNairda 的回复!代码希望在第二次单击中删除附加列表。尝试删除 functin (){ 包裹在 remove() 周围。但第二个列表不会附加到第一个列表中的项目。不知道为什么会这样。如果你有另一种简单的方法来完成这个,请解释一下。
  • 移除了函数 (){ 包裹在 remove() 上。它会附加列表,但无法在另一次点击中删除。
猜你喜欢
  • 2011-11-10
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 2012-03-28
  • 2014-10-22
  • 2010-11-03
  • 2016-09-02
相关资源
最近更新 更多