jQuery .click()方法的行为不符合预期

mat*_*ard 3 javascript jquery

我编写了一个函数,在单击某个元素时,将替换具有隐藏跨度的div.当我在标签中的"onclick ="attr中有事件处理程序时,该函数运行正常.但后来我试图"花哨"并用jQuery的.click()方法取代onclick attr.现在,当我尝试在页面上使用它时,只有一个笨蛋 - 没有任何反应.

但是,如果我在Chrome的js控制台中执行完全相同的代码,它的效果很好.这是我的js:

$("a#delete").click(function () {
    $("a#delete").replaceWith($("span.hconf").attr("style", "none"))
});
Run Code Online (Sandbox Code Playgroud)

这是相关的html(在div里面,在外面):

<a class='modify' id="delete" u="{{ i.id }}" href='#'>delete</a>
<span class='hconf' style="display:none;">Are you sure? <a class='confirm' id='del_conf_true' onclick='deltrue();' href='#'>yes</a> | <a class='confirm' id='del_conf_false' href='#'>no</a></span>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用"this"关键字更改第二个$("a#delete"),但我现在要撤消,因为我不确定这是否是问题的一部分.我是js/jQuery的新手.

kar*_*m79 5

准备好了:

$(document).ready(function() {
    $("a#delete").click(function () {
        $(this).replaceWith($("span.hconf").attr("style", "display:none"));
    });
});
Run Code Online (Sandbox Code Playgroud)

......你不是说style ="display:none"?您可以轻松使用.hide():

$("span.hconf").hide();
Run Code Online (Sandbox Code Playgroud)

最后,在ID选择器上使用过滤标签毫无意义.只是这样$("#delete"),它既短又快.