2013-08-30 39 views
0

我有一种形式,一旦第一次下拉选择,下一个将由第一个孩子填充。我需要通过已选择的“分支”。问题是我需要传递一个字符串以外的东西到填充下一个选择的选项的函数。我试图使用jQuery的.data();方法,但我不断收到错误。将数据传递给选择选项,然后进入一个函数,jquery .data();

function Branch (name, level, parent) { 
    this.name = name; 
    this.level = level; 
    this.children = []; 
    this.parent = parent; 
} 

function makeNextOptions (branch){ 
    var b = branch; 
    while (b) { 
     if (b.hasChildren()) { 
      f.append($("<select id="+l2+"></select>")); 
      var c = b.children; 
      j = c.length; 
      $("#"+l2).append($("<option></option>") 
           .attr("value", 2)//.id) 
           .text("text") 
          ); 
      while (j--) { 
       $("#"+l2).append($("<option></option>") 
            .attr("value", c[j].name)//.id) 
            .text(c[j].name) 
            .data(c[j]); 
           )}; 

      $("#"+l2).change(function() { 
       var sel = $("select option:selected").data(); 
       console.log(sel); 
       createLevel(sel) 
      }) 

      l--; 
      n = n.parent; 
     }else 
     { n= null; 
     } 
    }  

} 

但我不断收到一个错误,(“sel”)对象#没有方法'hasChildren'。但是确实如此,因为“sel”应该是另一个分支。

回答

1

你可以使用jquery的功能.data(key, value)你可以传递对象。