首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery append()

JQuery append()
EN

Stack Overflow用户
提问于 2011-08-11 06:18:02
回答 4查看 479关注 0票数 0

为什么下面的代码只附加了我添加的第一个div,而不是所有的div?(为了便于讨论,我去掉了一些代码)。

欢迎任何关于如何使用jquery动态构造一些嵌套div的技巧。

代码语言:javascript
复制
    var divRow;
    var nRow = 0;
    var i = 0;

     $.each(data, function (key, value) {        
          nRow++;
          div.append("<div id='divRow" + nRow + "' style='position: relative; float: left; '></div>");
          divRow = $('divRow' + nRow);

          divRow.append("<div id='divBox" + i + "' style=position: relative; clear: both; padding: 5px'></div>");

          var divBox = $('divBox' + i);

          divBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Word + "</div>");
          divBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Description + "</div>");

          i++;
 });
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-11 06:21:00

您的选择器中没有#

我建议像在this example from the jQuery website中那样使用appendTo,而不是选择刚刚创建的元素。

代码语言:javascript
复制
$('<p id="test">My <em>new</em> text</p>').appendTo('body');

对你来说,那就是:

代码语言:javascript
复制
var divRow;
    var nRow = 0;
    var i = 0;

     $.each(data, function (key, value) {        
          nRow++;
          div.append();
          var divRow = $("<div id='divRow" + nRow + "' style='position: relative; float: left; '></div>").appendTo(div);

          var divBox = $("<div id='divBox" + i + "' style=position: relative; clear: both; padding: 5px'></div>").appendTo(divRow);

          divBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Word + "</div>");
          divBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Description + "</div>");

          i++;
 });
票数 6
EN

Stack Overflow用户

发布于 2011-08-11 06:26:02

你可以使用jquery's templating来做这类事情。如果数据要更改(并且您希望更新UI ),那么我将使用http://knockoutjs.com

请参阅http://knockoutjs.com/examples/templating.html

票数 1
EN

Stack Overflow用户

发布于 2011-08-11 06:28:19

我认为你忽略了每个函数的功能。在创建阶段,没有理由像这样通过ID来索引事物。我已经对每一行的功能做了评论。

我还对一些东西进行了重新排序,以加快执行速度,但这是次要的。

代码语言:javascript
复制
$.each(data, function (key, value) {        
    // First create your row node.  Similar to document.createElement.
    var pRow = $("<div id='divRow"+key+"' style='position: relative; float: left; '></div>");
    // Then create your child node.
    var pBox = $("<div id='divBox"+key+"'style=position: relative; clear: both; padding: 5px'></div>");

    // Create your information nodes as children of your box node.        
    pBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Word + "</div>");
    pBox.append("<div style='position: relative; clear: both; padding: 5px'>" + value.Description + "</div>");

    // Add your box node to the row.  Similar to .appendChild.
    pRow.append(pBox);
    // Add your row to the active DOM.
    div.append(pRow);
 });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7018598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档