javascript - 如果内容与另一个 div 匹配,则隐藏 li 项目

标签 javascript jquery html

我目前在 div“公司名称”内有内容,我还有一个包含 div“项目名称”的完整项目列表。如果“item-name”中的内容与“company-name”中的内容匹配(逐字),那么我想显示:block;那个 li,否则 li 应该被隐藏。

此外,如果“item-name”div 为空/空白,它也应该被隐藏。

<div id="company-name">ABC Corporation</div>

<ul>

<li>Content for this item - this list item should display:block; because the item-name matches the company-name
    <ul>
        <li class="location">Australia</li>
        <li class="industry">Pharmaceuticals</li>
        <li class="item-name">ABC Corporation</li>
    </ul>
</li>

<li>Content for this item - this list item should be HIDDEN - display:block;
    <ul>
        <li class="location">Australia</li>
        <li class="industry">Pharmaceuticals</li>
        <li class="item-name">XYZ Company</li>
    </ul>
</li>

<li>Content for this item - this list item should be HIDDEN - display:block;
    <ul>
        <li class="location">Australia</li>
        <li class="industry">Pharmaceuticals</li>
        <li class="item-name">LMN Hardware</li>
    </ul>
</li>

</ul>

最佳答案

您可以迭代 item-name 元素并查看其内容是否与 company-name 匹配,如果是,则显示为

var cn = $('#company-name').text().trim();
$('li:has(li.item-name)').hide();
$('li.item-name').filter(function() {
  return $(this).text().trim() == cn;
}).parent().closest('li').show()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="company-name">ABC Corporation</div>

<ul>

  <li>Content for this item - this list item should display:block; because the item-name matches the company-name
    <ul>
      <li class="location">Australia</li>
      <li class="industry">Pharmaceuticals</li>
      <li class="item-name">ABC Corporation</li>
    </ul>
  </li>

  <li>Content for this item - this list item should be HIDDEN - display:block;
    <ul>
      <li class="location">Australia</li>
      <li class="industry">Pharmaceuticals</li>
      <li class="item-name">XYZ Company</li>
    </ul>
  </li>

  <li>Content for this item - this list item should be HIDDEN - display:block;
    <ul>
      <li class="location">Australia</li>
      <li class="industry">Pharmaceuticals</li>
      <li class="item-name">LMN Hardware</li>
    </ul>
  </li>

</ul>

关于javascript - 如果内容与另一个 div 匹配,则隐藏 li 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323038/

相关文章:

javascript - 字符串对象到数字 typescript

javascript - 更改 document.body 中的图像

jquery - 如何编写一个 jQuery 函数,通过一系列元素一次执行一个操作?

javascript - 谷歌图表与ajax

python - 在 BeautifulSoup 中查找标签和文本

javascript - 有没有办法创建行为类似于 C++ RValues 的 JavaScript 对象?

javascript - 如何在每次页面更改时刷新组件

Javascript 每三个空格拆分字符串

php - 如何添加另一个页脚菜单?

html - 将 PDF 嵌入 HTML 的推荐方法?