通过javascript在表格中动态添加“选择”和“默认文本”

时间:2016-01-19 17:36:34

标签: javascript jquery html json

如何使用javascript和JSON在动态表中添加动态下拉选项(设置默认选择!)。

我想在表格的每一行中添加许多选择(下拉列表),并在select中设置默认文本。该表是使用javascript append创建的,并使用Jquery从JSON文件导入动态内容。

我可以成功导入所有内容,但下拉菜单无法设置为已选中。如果你们能协助我选择下拉菜单,我会很高兴。非常感谢你!

<script type="text/javascript">
...
$(target).append("<tr style='height:150px'>" +
                        "<td><input type='checkbox'></td>" +
                        "<td>pics</td>" +
                        "<td>" + menuItemName + "</td>" +
                        "<td id='"+menuItemId+"'>" +
                        "</td>" +
                        "<td class='menuItemPrice'>" + menuData.Categories[c].Items[i].Price + "</td>" +
                        "<td>mount</td>" +
                        "</tr>"
                    );
...

for (var o = 0; o < menuData.Categories[c].Items[i].Options.length; o++) {
    var inputs = {isFirst:   firstOption,
                 optionId:   menuData.Categories[c].Items[i].Options[o].MenuItemOptionId,
                 optionName: menuData.Categories[c].Items[i].Options[o].MenuItemOptionName,
                 price:      menuData.Categories[c].Items[i].Options[o].Price
                 };
    $('#'+menuItemId).append("<div><select"+
                                "<option value='1'>small</option>" +
                                "<option value='2'>mid</option>" +
                                "<option value='3'>big</option>" +
                                "<option value='4'>very big</option>"+
                                "</select></div>"

                            );

这里我想设置默认选择但不能成功,请帮帮我,谢谢!

$('#'+menuItemId).children(':selected').text(inputs.optionName);//here just can show the last size.

HTML

...
<tbody id="sortable">

1 个答案:

答案 0 :(得分:1)

首先,您的select代码没有结束尖括号(&gt;),因此HTML格式不正确。它应该是这样的:

$('#'+menuItemId).append("<div><select>"+

其次,您应该使用find而不是children,因为您要查找的内容比选择器标识的元素低多个级别,如下所示:

$('#'+menuItemId).find(':selected').text(optionName);

以下是一个工作示例:https://jsfiddle.net/tLddsL2p/1/