javascript - jQuery:在单击时隐藏与选择器具有相同文本的对象的父级

标签 javascript jquery html css

我有一个菜单(因为特定的动态内容,我不能使用类或 ID)隐藏所有与菜单选择器文本不同的元素。

HTML:

<ul>
 <li class="dropDown">
 <li class="galSub"><a href="#">Alla</a></li>
 <li class="galSub"><a href="#">NorrlandsOperan</a></li>
 <li class="galSub"><a href="#">Norrdans</a></li>
 <li class="galSub"><a href="#">Estrad Norr</a></li>
 <li class="galSub"><a href="#">Piteå Kammaropera</a>  </li>
</ul>

<div class="box boxImg col2">
   <h3>Figaro</h3>
    <h4 class="prodEns">NorrlandsOperan</h4>
</div>
<div class="box boxImg col2 ">
   <h3>A la Carte</h3>
   <h4 class="prodEns">Norrdans</h4>
</div>
<div class="box boxImg col2">
   <h3>Porta</h3>
   <h4 class="prodEns">Estrad Norr</h4>
</div>
<div class="box boxImg col2">
   <h3>A la Carte</h3>
   <h4 class="prodEns">Piteå Kammaropera</h4>
</div>

JQuery:

var galLi = $('.galSub a');
var prodItm = $('.boxImg'); 
var prodEns = $('.prodEns');

galLi.click(function(e){
    var refLink = $(this);
    e.preventDefault();
    if (prodEns.text() == refLink.text()) {
    $('this').parent().siblings(prodItm).hide();
}

最佳答案

我会选择 .filter():contains因为它可以返回部分匹配

var galLi = $('.galSub');
var boxImgs = $('.boxImg');

galLi.click(function(e){
    var text = $(this).text().trim();
    e.preventDefault();
    boxImgs.filter(function(){
        return $(this).find('.prodEns').text().trim() == text;
    }).toggle();//use toggle if you want to hide and show, else just use hide()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
 <li class="dropDown">
 <li class="galSub"><a href="#">Alla</a></li>
 <li class="galSub"><a href="#">NorrlandsOperan</a></li>
 <li class="galSub"><a href="#">Norrdans</a></li>
 <li class="galSub"><a href="#">Estrad Norr</a></li>
 <li class="galSub"><a href="#">Piteå Kammaropera</a>  </li>
</ul>

<div class="box boxImg col2">
   <h3>Figaro</h3>
    <h4 class="prodEns">NorrlandsOperan</h4>
</div>
<div class="box boxImg col2 ">
   <h3>A la Carte</h3>
   <h4 class="prodEns">Norrdans</h4>
</div>
<div class="box boxImg col2">
   <h3>Porta</h3>
   <h4 class="prodEns">Estrad Norr</h4>
</div>
<div class="box boxImg col2">
   <h3>A la Carte</h3>
   <h4 class="prodEns">Piteå Kammaropera</h4>
</div>

关于javascript - jQuery:在单击时隐藏与选择器具有相同文本的对象的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30377432/

相关文章:

html - 悬停时如何阻止文本移动? (涉及背景图像)

javascript - 在 jquery 中创建命名空间时出错

javascript - 在 Leaflet API 中添加或删除 ImageOverlay 时的动画

javascript - 具有非 jQuery/框架构建的路点

javascript - 设置字数限制并在字数限制上调用新类

javascript - 如何在 Bootstrap 侧导航顶部显示 jQuery-ui 自动完成?

javascript - 结合两个mapStateToProps React

php - POST、AJAX 和 PHP : JSON submission

javascript - Struts Iterator 每个 div 放置 3 个项目

javascript - 循环遍历 ul li 并使用 insertBefore 将图像向上移动两个元素