通过WordPress函数考虑此菜单输出:
<ul id="header-cats">
<li class="cat-item cat-item-6"><a href="url" title="View all posts filed under Category I">Category I</a>
</li>
<li class="cat-item cat-item-7"><a href="url" title="View all posts filed under Category II">Category II</a>
</li>
<li class="cat-item cat-item-8"><a href="url" title="View all posts filed under Category III">Category III</a>
</li>
</ul>
现在考虑这个帖子列表:
<ul id="posts-preview" class="clearfix">
<li class="filter-reset filter-hide filter-6 ">
<a class="post-thumb" id="post-112" href="url" >Link</a>
</li>
<li class="filter-reset filter-hide filter-6 filter-8 ">
<a class="post-thumb" id="post-102" href="url" >Link</a>
</li>
<li class="filter-reset filter-hide filter-7 ">
<a class="post-thumb" id="post-88" href="url" >Link</a>
</li>
<li class="filter-reset filter-hide filter-6 ">
<a class="post-thumb" id="post-6" href="url" >Link</a>
</li>
</ul>
我的目标是使用jQuery函数提取菜单类名的数字结尾(即6
中的cat-item 6
)并使用该值来定位相应的帖子。为了详细说明,我会将6
用作变量,并找到以filter
结尾的6
类。
这是我到目前为止所做的:
$('#header-cats li').click(function(){
var num_id = $(this).attr('class') // ... matching "cat-item-?" etc...
$(".filter-"+num_id).fadeIn(500);
return false;
});
js恶魔应该很容易: - )
答案 0 :(得分:4)
您可以使用RegEx从您的班级ID中获取号码(以下代码未经过测试) -
$('#header-cats li').click(function(){
var num_id = $(this).attr('class').match(/\d+/); // ... matching "cat-item-?" etc...
$(".filter-"+num_id).fadeIn(500);
return false;
});
答案 1 :(得分:3)
如果你确定类字符串中只有一个数字,你可以使用它:
var num_id = $(this).attr('class').match(/\d+/)[0]
如果您不确定,请更好地使用:
var num_id = $(this).attr('class').match(/cat-item-(\d+)/)[1]
答案 2 :(得分:0)
我通常使用.substring(9)来获取数字,但我想有更好的方法
我也会把它放在数据属性值或id中,以便于参考,如下所示:
<li class="cat-item" data-catitem-num=8><a href="url" title="View all posts filed under Category III">Category III</a>
然后在jquery中:
$(".cat-item").click(function(){
var filterNum = $(this).attr("data-catitem-num");
$(".filter-"+filterNum).fadeIn(500);
return false;
})
或其他相似的东西
注释 如果你的元素有一个唯一的“id”,请不要把它放在一个类中。把它放在id或data-attribute中(所以在你的情况下,catitem和filternum将在data-catitem或data-filternum中或在他们的元素id中。