Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过查找类名进行jQuery选择_Jquery - Fatal编程技术网

通过查找类名进行jQuery选择

通过查找类名进行jQuery选择,jquery,Jquery,我试图创建这样的东西,当用户在li中单击月份时,jquery将找到className,并在文档的其余部分中查找相同的classNme,结果只显示中的className e、 g点击 <li class="jan15">JAN</li> 使用jQuery和新的JSFIDLE链接进行编辑我将在以下方面做更多工作: $('.' + this.className.match(/\w{3}\d{2}/)).not(this).show().siblings().hide()

我试图创建这样的东西,当用户在
li
中单击月份时,jquery将找到
className
,并在文档的其余部分中查找相同的
classNme
,结果只显示
中的
className

e、 g点击

<li class="jan15">JAN</li>


使用jQuery和新的JSFIDLE链接进行编辑

我将在以下方面做更多工作:

$('.' + this.className.match(/\w{3}\d{2}/)).not(this).show().siblings().hide()
下面的代码段注释得更彻底。另外,请注意,要使其工作,要显示或隐藏的元素需要是同级元素。要做到这一点,只需将它们包装在
或任何东西中

$('years li')。在('click',function()上{
$('..+this.className.match(//\w{3}\d{2}/)//获取类似类的日期并使用它
//在jQuery选择器中。
.not(this)//指定不包含您所创建的链接
//点击。
.show()//运行元素的当前选择
//反对“show”方法
.sides()//获取其他可隐藏元素
.hide()//隐藏它们。
});
li{列表样式类型:无;光标:指针;}

2015年
  • JAN
  • 二月 三月 2014年
  • 1月
  • 二月 三月 2015年1月

    2015年2月

    2015年3月

    2014年1月

    2014年2月

    2014年3月


    我对jquery中的逻辑做了一点更改,但它似乎有效

    希望能有帮助

    $('.years li a').click(function() {
      className = $(this).parent().attr('class');
    
      // Only clicked will be visible
      $('.months > div').hide();
    
      if ($('div.'+className).length > 0){
        $('div.'+className).show();
      }
    });
    
    和css

    .months > div{
      display:none;
    }
    

    如果你不表现出你的努力,这会被否决很多。那把小提琴没有JS,所以它基本上是“有人做我的代码”。只需使用一个简单的
    $('.CLASSNAME')
    就可以选择页面中具有该类名的每个元素。可能还需要一个
    。而不是(这个)
    。谢谢你,这正是我想要的
    $('.' + this.className.match(/\w{3}\d{2}/)).not(this).show().siblings().hide()
    
    $('.years li a').click(function() {
      className = $(this).parent().attr('class');
    
      // Only clicked will be visible
      $('.months > div').hide();
    
      if ($('div.'+className).length > 0){
        $('div.'+className).show();
      }
    });
    
    .months > div{
      display:none;
    }