2010-07-21 23 views
4

我有一个下拉菜单,在另一个进程中添加optgroups /选项到该下拉菜单,该部分工作正常。检查jQuery中是否存在id/label的optgroup?

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

我一直在四处搜寻,似乎找不到任何帮助选择optgroup。

我现有的下拉菜单中有“user_search_select”和可能OPTGROUP值的ID也能像“DEPT_NAME”或“loc_name”或“姓氏”

所以我添加更多的数据后,然后我可能要排序的每个optgroup内部的选项是否可行?

谢谢!

回答

6

检查this out。虽然我没有尝试过,但它看起来可以完成有关分拣的工作。

关于存在的检查。基本上,你可以检查:

<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> 

在脚本中,如果检查是否有OPTGROUP与标签新组,如果没有这样的组 - 添加新的组,然后添加该组中的选项。其他部分,只需在现有的新组中添加选项。

然后,你应该使用插件应用排序。

+1

测试元素存在的最好方法是使用'length'属性。 'if($('#whatever')。length){/ *存在* /}其他{/ *不存在* /}' – Matchu 2010-07-21 20:05:38

+0

是的正确!我在测试解决方案时遇到了问题(错字),并尝试使用html(),然后我忘记更改:) – 2010-07-21 20:09:17

+0

我可以轻松地删除名为optgroup的子项吗? – crosenblum 2010-07-22 21:50:43