将数据传递给选择选项然后传递给函数jquery .data();

时间:2013-08-30 19:46:14

标签: javascript jquery html forms

我有一个表单,一旦选择了第一个下拉列表,下一个将由第一个下拉列表填充。我需要传递已选中的“分支”。问题是我需要将一个字符串以外的东西传递给填充下一个选择选项的函数。我正在尝试使用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”)Object#没有方法'hasChildren'。但确实如此,因为“sel”应该只是另一个分支。

1 个答案:

答案 0 :(得分:1)

您可以使用jquery的函数.data(key, value)来传递对象。