如果一个父菜单项包含特定文本,如何隐藏导航父菜单项?

时间:2017-09-22 13:19:12

标签: jquery html

如果其他li包含文本“Turkey | Meats”,如何用文本“Fish”隐藏li?我觉得这个代码应该可以做到,但也许是“|” “土耳其|肉类”中的字符导致代码不起作用?

更新:我输入了HTML&第一次jQuery不正确。唯一的类应用于“li”而不是“a”,只有第二个“a”有自己独特的类。

jQuery(function($) {
  if ($('.nav-a').text() === 'Turkey | Meats') {
    $('.nav-link-1').hide();
  } else {
    $('.nav-link-1').show();
  }
});
<div class="nav">
  <ul class="nav-list">
    <li class="nav-link nav-link-1">
      <a href="" class="nav-link">Fish</a>
    </li>
    <li class="nav-link nav-link-2">
      <a href="" class="nav-link nav-a">Turkey | Meats</a>
    </li>
  </ul>
</div>

1 个答案:

答案 0 :(得分:1)

你所做的是对的,除了你应该:

  1. 修剪内容。大部分文字内容都会包含大量的空格。
  2. 不使用严格比较。
  3. 隐藏或显示<li>
  4. jQuery(function($) {
      if ($('.nav-link-2').text().trim() == 'Turkey | Meats') {
        $('.nav-link-1').parent().hide();
      } else {
        $('.nav-link-1').parent().show();
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="nav">
      <ul class="nav-list">
        <li class="nav-link">
          <a href="" class="nav-link-1">Fish</a>
        </li>
        <li class="nav-link">
          <a href="" class="nav-link-2">Turkey | Meats</a>
        </li>
      </ul>
    </div>