如果div不存在于页面上,则jQuery ui tabs删除/隐藏<ul>中的<li>

时间:2015-09-19 14:43:07

标签: javascript jquery html css jquery-ui

代码:

<div id="alert-view-tabs">
            <ul>
                <li><a href="#general-tab-alert-view">General information</a></li>
                <li><a href="#alert-sections-view">Alert Items</a></li>
                <li><a href="#alert-operators-view">Operators</a></li>
                <li><a href="#AlertPlanTypeAudienceView">Plan Type & Audience</a></li>
                <li><a href="#AlertDiscountOffersView">Discount Offers</a></li>
                <li><a href="#AlertStandartPlanView">Standard Plans</a></li>
                <li><a href="#AlertDataOnlyPlanView">Data Only Plans</a></li>
                <li><a href="#InternationalRatesAlertView">International Rates</a></li>
                <li><a href="#RoamingRatesAlertView">Roaming Rates</a></li>
            </ul>

在某些情况下,我的页面中没有divs,您可以在上面看到。因此,选择器为空,但如果页面中不存在div,则需要删除或隐藏选项卡。我是JS的新人,很乐意得到任何帮助。

2 个答案:

答案 0 :(得分:3)

以下是解释的基本概念。

&#13;
&#13;
//So select all of the anchors
var anchors = $("#alert-view-tabs a");
//loop them
anchors.each(function() {
  //get the hash
  var id = this.hash
  //see if it exists
  var isThere = $(id).length === 1;
  //if not, remove the parent
  if (!isThere) {
      $(this).closest("li").remove();  
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="alert-view-tabs">
  <ul>
    <li><a href="#general-tab-alert-view">General information</a></li>
    <li><a href="#alert-sections-view">Alert Items</a></li>
    <li><a href="#alert-operators-view">Operators</a></li>
    <li><a href="#AlertPlanTypeAudienceView">Plan Type &amp; Audience</a></li>
    <li><a href="#AlertDiscountOffersView">Discount Offers</a></li>
    <li><a href="#AlertStandartPlanView">Standard Plans</a></li>
    <li><a href="#AlertDataOnlyPlanView">Data Only Plans</a></li>
    <li><a href="#InternationalRatesAlertView">International Rates</a></li>
    <li><a href="#RoamingRatesAlertView">Roaming Rates</a></li>
  </ul>
</div>
<div id="general-tab-alert-view">general-tab-alert-view</div>
<div id="alert-operators-view">alert-operators-view</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果div不存在,请对每个a进行迭代并删除它的父li

$('#alert-view-tabs ul li a').each(function() {
    if (!($(this.href).length)) {
        $(this).parent().remove();
    }
});