jquery .remove 不起作用

发布于 2024-10-15 02:24:34 字数 708 浏览 1 评论 0原文

我试图在 onClick 上向 div 添加超链接,并且我打算当我再次点击时,附加的超链接将被删除...一切正常 onClick 超链接将附加到预期的 div,但它们不会被删除...

<script type="text/javascript">
    $(document).ready(function() {

        $("[href=#]").click(function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).remove();

            }

            $("#appendContainer").append(
$("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld"));
        });
    });

</script>




    <a href="#">click here</a>
         <div id="appendContainer"></div>

i was trying to add a hyperlink to a div onClick and i intended that when i clink again the appended hyperlink is removed... everything is working fine onClick the hyperlink is appended to the intended div but they are not being removed...

<script type="text/javascript">
    $(document).ready(function() {

        $("[href=#]").click(function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).remove();

            }

            $("#appendContainer").append(
$("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld"));
        });
    });

</script>




    <a href="#">click here</a>
         <div id="appendContainer"></div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧城烟雨 2024-10-22 02:24:34

您始终会附加锚链接,但如果已存在则将其删除。您需要在 if 后面添加 else 块。 IE:

<script type="text/javascript">
    $(document).ready(function() {
        $("[href=#]").click(function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).remove();

            }
           else {
            $("#appendContainer").append($("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld"));
          }
        });
    });  </script>

You are always appending the anchor link though you are removing it if already exists. You need to add the else block after if. i.e.:

<script type="text/javascript">
    $(document).ready(function() {
        $("[href=#]").click(function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).remove();

            }
           else {
            $("#appendContainer").append($("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld"));
          }
        });
    });  </script>
风月客 2024-10-22 02:24:34

$(function() {
  function linkClickHandler() {
    var appendContainer = $('#appendContainer');
    appendContainer.children().remove();
    appendContainer.append(
       $('<a/>', {
          href: '#',
          id: 'helloWorldLink',
          click: linkClickHandler,
          text: 'HelloWorld'
       })
    );

    $('[href=#]').click(linkClickHandler);
  }
}

或者使用 live(但在这种情况下速度较慢)。


$(function() {
  function linkClickHandler() {
    var appendContainer = $('#appendContainer');
    appendContainer.children().remove();
    appendContainer.append(
       $('<a/>', {
          href: '#',
          id: 'helloWorldLink',
          click: linkClickHandler,
          text: 'HelloWorld'
       })
    );

    $('[href=#]').click(linkClickHandler);
  }
}

Or use live (but it is slower for this case).

我爱人 2024-10-22 02:24:34

您添加的链接没有 onClick 侦听器。

尝试使用 .live() 设置事件处理程序。使用此代码:

$(document).ready(function() {
        $("[href=#]").live('click', function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).detach();
                return;
            }

            $("#appendContainer").append(
              $("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld")
            );
        });
});

请注意,我在 detach() 之后添加了 return 以避免在删除旧链接后添加新链接。

Your added link doesn't have your onClick listener.

Try to use .live() to set event handler. Use this code:

$(document).ready(function() {
        $("[href=#]").live('click', function() {
            if ($("#appendContainer").is(":parent")) {
                var child = $("#appendContainer").children().attr("id");
                alert(child);
                $('#' + child).detach();
                return;
            }

            $("#appendContainer").append(
              $("<a/>", { href: "#", id: "helloWorldLink" }).text("Helloworld")
            );
        });
});

Note, what i've added return after the detach() to avoid adding new link just after removing old one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文