0

我编写了用复选框进行操作的插件。现在我有一些问题。获得 JSON后,我想连接我的孩子和父母。每个孩子都有带有这个 id 值的data-parent 。

示例子: {“id”:4,“name”:“name 1”,“parent”:1}
示例父: {“id”:2,“name”:“name 2”,“parent”:false }

在渲染我的第一级(父母)之后,我想附加到父母,他们的孩子。请帮忙,我不知道这样做的好习惯。

var $this = this.element; // (target to DOM element, in this context 'body')    
$.getJSON('js/ajax/data.json', function(data) {
var parentData = [];
var childrenData = [];

$.each(data, function(i, item) {
  if (data[i].parent == false) {
     parentData.push(
        '<div class="ra-megaselect-rubrics-level-one"><label>' +
        '<input type="checkbox" data-id="' + data[i].id + '">' +
        '<span>' + data[i].name + '</span>' +
        '</label></div> '
         )}
        else {
          childrenData.push(
            '<div class="ra-megaselect-rubrics-level-two"><label>' +
            '<input type="checkbox" data-id="' + data[i].id + '" data-parent="' + data[i].parent + '">' +
            '<span>' + data[i].name + '</span>' +
            '</label>'
           )}
         });

         $this.append(parentData);
        });
4

1 回答 1

0

您正在做的事情被称为闭包:http ://en.wikipedia.org/wiki/Closure_%28computer_science%29

你所做的是真正的普通代码。不好的做法是让 HTML 炸弹在 javascript 中间有一个字符串。

为了可维护性,您可能应该将您的“孩子”和“父母”变成对象,这些对象存储对其各自节点的引用,并为您提供一堆实用函数,以便您可以直接操作它们。看看这里

于 2013-03-30T08:41:53.647 回答