Javascript 根据标记的html值显示元素

Javascript 根据标记的html值显示元素,javascript,jquery,Javascript,Jquery,我想通过jquery完成以下工作: 当我点击这个链接 <a href="#">Cars</a> 我想要所有像那样的div <div class="product"> <div class="category">Cars</div> </div> 汽车 做某事 你明白我的意思了,我有一个包含类别列表的菜单,还有一个产品列表,每个产品都包含一个带有类别名称的div,我想让它们隐藏/显示。我不确定我是否完全理解

我想通过jquery完成以下工作:

当我点击这个链接

<a href="#">Cars</a>

我想要所有像那样的div

<div class="product">
    <div class="category">Cars</div>
</div>

汽车
做某事


你明白我的意思了,我有一个包含类别列表的菜单,还有一个产品列表,每个产品都包含一个带有类别名称的div,我想让它们隐藏/显示。

我不确定我是否完全理解你的问题,但是如果你想在单击cars链接时显示div class=“category”cars,请遵循以下步骤:

$("#menu a").click(function() {
   var value = $(this).html();

   $.each($(".category"), function(i, item) {
     if ($(item).html() == value) {
         $(item).parent().hide();
     }

   });
});
如果要隐藏div,只需替换
$(item).show()
;使用
$(项).hide()

假设:

<a href="#" class="highlight">Cars</a>
这样做的目的是将
category
类添加到包含链接文本的任何
category
DVI中。如果您也希望这样做,可以修改它来修改父
产品
div

它的工作原理是首先从所有
类别
div中删除类
突出显示
,然后将其添加到需要它的div中。

演示:来源:

$('a')。单击(函数(e){
var search_term=$.trim($(this.text());//trim text
$('.category')。每个(函数(){
($(this).text().search(新的RegExp(搜索词'i'))<0)//上限和下限
?$(this.parent().hide():$(this.parent().show());
});  
});
这会将文本保留在
标记内,如果
文本与
.category
文本匹配,则搜索
。它会显示相关的
.product
内容

注意:

  • 脚本同时匹配大写字符和小写字符

    示例匹配
    Cars
    以及
    Cars
    Cars

  • 同样匹配间隔文本
    汽车
    以及
    汽车
    汽车

  • 同样匹配标记的文本如
    汽车


  • 是的,谢谢,这就是我的想法,除了我想隐藏父分区(“产品”)而不是“类别”分区。我通过做$(item.parent().show()来做到这一点;而不是$(item.show();另外,我认为你的代码中有一个输入错误,应该是if($(item).html()==value){而不是if($(item).html==value){是的,这是一个输入错误,谢谢,我用你的最终需求更新了我的答案,幸好我帮了你..回头见!:)你能把我的答案标记为已接受吗?有趣的脚本!谢谢分享
    $("a.highlight").click(function() {
      $("div.category").removeClass("category")
        .filter(":contains(" + $(this).text() + ")").addClass("highlight");
      return false;
    });
    
        $('a').click( function(e) {
           var search_term = $.trim($(this).text()); //trim text
          $('.category').each(function() {  
          ($(this).text().search(new RegExp( search_term , 'i')) < 0 )//upper & lower
            ? $(this).parent().hide() : $(this).parent().show();  
           });  
        });