jquery append()发生了两次

jquery append()发生了两次,jquery,Jquery,这是我到目前为止的代码 $('label').click(function () { if ($('label input').is(':checked')) { $(this).addClass('checked'); $('.donate-now label').not(this).removeClass('checked'); var donateAmount = $(".checked input"

这是我到目前为止的代码

$('label').click(function () {
        if ($('label input').is(':checked')) {
            $(this).addClass('checked');
            $('.donate-now label').not(this).removeClass('checked');

            var donateAmount = $(".checked input").val();
            $('p').append(donateAmount);
        }

    });
我正在检查以确保“donatamount”变量只获取一个值,因此为了测试,我将它附加到HTML中,但它显示了两次

这是一个append()函数,而我的变量只有一个值,还是出了什么问题?本质上,我只是想确保我的变量有一个值

在这里,它正在发挥作用


谢谢

请使用以下命令,而不是追加:

$('p').html(donateAmount);

Append每次都会在该
元素中放入一个新元素,而不是替换它的内容。

尝试将选择器更改为:

$('label input').click(function () {
....
});

您的问题是,当您单击收音机时,您正在单击标签和收音机。由于您正在单击子元素,因此事件将触发两次。如果在单击单选按钮时将选择器再聚焦一点并仅捕获,则它将只触发一次。单击标签也会触发对输入的单击

将其从“附加”更改为“替换”并不能解决问题,只需屏蔽它。

您应该在附加容器之前将其
.empty()
清空。:)

为什么你的事件会被触发两次,我不是100%确定,但我认为这可能是标签点击事件的方式。我敢肯定它是委托给你的无线电输入,然后触发另一个标签点击


我还对代码做了一些修改,以减少嵌套/链接。让我知道,如果这照顾它为你

还要记住,
input
标记是一个空元素,因此没有设计为在标记之间有结束标记,甚至没有内容<代码>$50
无效。明白!谢谢你的澄清。