【问题标题】:jquery append creates extra elementjquery append 创建额外的元素
【发布时间】:2014-05-05 01:28:01
【问题描述】:

我的代码中的jquery.append 创建了一个额外的元素。我不确定出了什么问题。

非常感谢您的帮助

var topDiv = document.createElement('div');

this.topDiv.innerHTML = '<div class="MyDiv1"></div><div class="MyDiv2">' +
                        '<canvas class="MyCanvas" width="10" height="1">' +
                        '</canvas></div><div class="MyDiv3"></div><span class="MySpan"></span>';
MyCanvasEle = topDiv.childNodes[1].childNodes[0];
MyCanvasEle.getContext('2d');

我想在 MyDiv2 中添加另一个 div,与 MyCanvas 级别相同。最终,我将在 for 循环中将 0(零)替换为 i,但现在,第一个追加为我提供了具有所需位置、宽度和 len 的元素,但它也为我提供了没有属性的额外元素。

$(".MyDiv2" ).append('<div id="MyID' + 0 + '" class="MyClass1"><table border="1" width="100% height="5"><tr><td></td></tr></table></div>');
$("#MyID"+0).css("top", 5);

【问题讨论】:

  • 追加在+ 0 之后缺少第二个“+”。我认为这只是一个错字,但最好先解决这个问题:)
  • 是的,这是问题中的错字。错字已修复。

标签: javascript jquery dom append innerhtml


【解决方案1】:

我假设 0 将被替换为变量,无论如何您的附加代码无效 - 您缺少 +

                                           V - insert here :)
$(".MyDiv2" ).append('<div id = "MyID' + 0 + '" class="MyClass1"><table border="1" width="100% height="5"><tr><td></td></tr></table></div>');
$("#MyID"+0).css("top", 5);

为了整洁,还要去掉 id = 周围的空格:

$(".MyDiv2" ).append('<div id="MyID' + 0 + '" class="MyClass1"><table border="1" width="100% height="5"><tr><td></td></tr></table></div>');
$("#MyID"+0).css("top", 5);

使用调试器(如 F12 Chrome 功能)来 a) 检查您的 HTML 结构和 b) 为您的代码设置断点总是一个好主意。

【讨论】:

  • 删除了多余的空格。谢谢你的建议。我将开始学习如何在 Firebug 中使用断点。
猜你喜欢
  • 2020-02-05
  • 1970-01-01
  • 2010-12-02
  • 2011-09-05
  • 2012-07-13
  • 2010-12-02
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
相关资源
最近更新 更多