在我的代码中,此命令只运行一次:
jQuery("#commentrating").append('A');
但在div #commentrating
里面出现了两个“A”元素!什么可能导致这个错误?
P.S。 .after()
也是错误的:S
答案 0 :(得分:0)
也许这是由事件冒泡引起的。(只要猜测没有进一步的信息)
假设:
<script type="text/javascript">
jQuery(
function($)
{
$('div')
.click(function(e)
{
$('span',this).append('A');
}
);
}
);
</script>
<div><div><b>click here:</b><span></span></div></div>
如果单击文本,则单击将在内部div上触发并向上冒泡到外部div,该函数将执行2次。
为避免这种情况,请使用stopPropagation()
<script type="text/javascript">
jQuery(
function($)
{
$('div')
.click(function(e)
{
e.stopPropagation();
$('span',this).append('A');
}
);
}
);
</script>
<div><div><b>click here:</b><span></span></div></div>
答案 1 :(得分:0)
(使用 append
, appendTo
, prepend
, {{ 1}} ...):
1)如果将2个 source 元素附加到1个目的地元素,则使用:
prependTo
在您html中某个位置的jQuery找到2个$("destination").append("source");
元素并将它们都追加。
2)如果将1个来源元素附加到2个目标,例如:
source_div
可能您的html中有2个$("destination").append("source");
元素:
destination