我想通过使用匹配(我从这个post改编的代码)从类名中提取数字来重新排列我的列表顺序,但它不起作用。这里是我的代码:通过提取类名来重新排序jQuery的列表项
HTML:
<ul class="class-of-ul">
<li><a href="#" class="class-of-li-66">66</a></li>
<li><a href="#" class="class-of-li-69 current-li">69</a></li>
<li><a href="#" class="class-of-li-65" >65</a></li>
<li><a href="#" class="class-of-li-68" >68</a></li>
<li><a href="#" class="class-of-li-67" >67</a></li>
</ul>
的jQuery:
$(document).ready(function() {
$("ul").append($("li").get().sort(function(a, b) {
return parseInt($(a).attr("class").match(/\d+/)) - parseInt($(b).attr("class").match(/\d+/))
}));
});
,这是jsfidle link
谢谢。有用! – webchun
嗨,我已经在我的网站上实现了这一点,但不幸的是,它在控制台上返回错误:Uncaught TypeError:无法调用未定义的方法匹配。对此有何想法? – webchun
@dreamexploded这意味着'.attr('class')'是未定义的,你可以添加一个'console.log(a,$(a).find('a')。attr('class')); console.log(b,$(b).find('a')。attr('class'))'看看发生了什么 –