2010-07-21 30 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