jQuery父子沟通

时间:2013-03-30 07:30:23

标签: javascript jquery json

我正在编写使用复选框操作的插件。 现在我有一些问题。在我获得JSON 之后,我想要联系我的孩子和父母。 每个孩子都有数据父级,其值为此ID。

示例子项: {“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);
        });

1 个答案:

答案 0 :(得分:0)

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

你所做的是非常常见的代码。这是一个不好的做法是让HTML炸弹droped在javascript中间有一个字符串。

为了可维护性,您可能应该将“子”和“父”转换为对象,这些对象存储对各自节点的引用,并为您提供一组实用函数,以便您可以直接操作它们。 Take a look here