jQuery .append(),prepend(),after()...重复的元素和内容?

时间:2011-08-30 20:38:49

标签: jquery duplicates append

在我的代码中,此命令只运行一次:

jQuery("#commentrating").append('A');

但在div #commentrating里面出现了两个“A”元素!什么可能导致这个错误?

P.S。 .after()也是错误的:S

2 个答案:

答案 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