检查jquery中是否存在id/label的optgroup?

cro*_*lum 4 jquery jquery-selectors optgroup

我有一个下拉列表,并在另一个过程中添加选项组/选项到该下拉列表,该部分工作正常.

但我可能需要添加类似的optgroups,包含更多数据,并且我想检查该optgroup是否存在,如果存在,请不要添加它,只是添加选项到现有的optgroup.

我一直在寻找,似乎无法找到任何有关选择optgroup的帮助.

我现有的下拉列表的id为"user_search_select",可能的optgroup值可能类似于"dept_name"或"loc_name"或"last_name"

所以在我添加更多数据后,我可能想要对每个optgroup中的选项进行排序,这是可能的,怎么样?

谢谢!

Nik*_*kov 6

看看这个.虽然我没有尝试过,但看起来它可以完成排序工作.

关于检查存在.基本上你可以检查:

<script type="text/javascript">
    $(document).ready(function() {
        if($('#mySelect optgroup[label=New group]').html() == null){
           $('#mySelect').append('<optgroup label="New group"></optgroup>');
           $('#mySelect optgroup[label=New group]').append('<option value="1">New element</option>');
        } else {
           $('#mySelect optgroup[label=New group]').append('<option value="1">New element</option>');
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在脚本中,if检查是否存在带有标签New group的optgroup,如果没有这样的组 - 添加新组,然后在该组中添加该选项.else部分,只需在现有的New组中添加选项即可.

然后你应该使用插件应用排序.

  • 测试元素存在的最佳方法是使用`length`属性.`if($('#whatever').length){/*它存在*/} else {/*不存在*/} (2认同)