0

我有一些代码来生成一个下拉菜单和一个显示 2/4/8 的下拉菜单,根据用户选择的内容,将创建该数量的下拉菜单。

这是模板代码:

div.row.hidden#rowTemplate
    label.control-label(for="team") Team:
    div.controls
        select#team1(style='width: 160px;')
            include teamsDropDown

这是生成下拉列表的JS:

脚本(类型='文本/javascript')

$("#nTeamSelector").change(function(){
    var nTeams = $("#nTeamSelector").val(); // Get the value of the team selector that you use
    $("#rowContainer").empty() // Delete all existing dropdowns
    for (var i=0; i<nTeams; i++){
        var newRow = $("#rowTemplate").clone(); // Exact copy of the element generated by Jade
        /*
        * here you should change all the little fields that 
        * make the dropdowns different. For example:
        */
        //newRow.children(".control-label").setText("Team "+(i+1)+":");
        newRow.attr('id', 'team'+(i+1)+'Row');
        newRow.removeClass("hidden");
        $("#rowContainer").append(newRow);
    }
});

目前,setText当我收到错误消息时,我无法让线路正常工作Uncaught TypeError: Object [object Object] has no method 'setText'。除此之外,生成的每个下拉列表都有一个从 rowTemplate 代码中引入的其中select一个,我想将其附加到每个生成的下拉列表的团队中。id#team1i

有任何想法吗?

4

1 回答 1

1

我想你在追求.text( textString )

newRow.children(".control-label").text("Team "+(i+1)+":");

要更改select's id,您还需要选择它并应用id. 像这样的东西:

newRow.find('select').attr('id', 'team' + (i + 1));
于 2013-04-14T11:09:43.857 回答