Javascript 属性大于传递变量(.filter())的jQuery元素

Javascript 属性大于传递变量(.filter())的jQuery元素,javascript,jquery,html,Javascript,Jquery,Html,我知道我可以使用jQuery的.filter()按属性进行筛选。我还知道,自从W3C在HTML5中正式实现了data thing以来,这种自定义属性的使用是不受欢迎的 但我还是想知道为什么这不起作用 JS: HTML: 但这也不起作用。有什么想法吗?您可以在此处使用turnery运算符: 喜欢 return $('this').attr('lvl')> lvl ? lvl : $('this').attr('lvl'); 在代码的这一行中: $('div').filter(func

我知道我可以使用jQuery的.filter()按属性进行筛选。我还知道,自从W3C在HTML5中正式实现了data thing以来,这种自定义属性的使用是不受欢迎的

但我还是想知道为什么这不起作用

JS:

HTML:


但这也不起作用。有什么想法吗?

您可以在此处使用turnery运算符:

喜欢

return $('this').attr('lvl')> lvl ? lvl : $('this').attr('lvl'); 

在代码的这一行中:

 $('div').filter(function(lvl) {
lvl
在jquery函数中被视为索引,因此该函数中的lvl值是[0-1-2….nbr\u of divs]

要解决这个问题,只需从param中删除
lvl
,并直接使用它

$('div').filter(function() {
    return $(this).attr('lvl') > lvl;
}).slideToggle(100);
还从过滤器函数中的
$(this)
中删除撇号('):

更换:

return $('this').attr('lvl')> lvl;
return $(this).attr('lvl') > lvl;
作者:

return $('this').attr('lvl')> lvl;
return $(this).attr('lvl') > lvl;

而且它能工作,希望能得到帮助。

我认为e.preventDefault()是必需的。啊!是的,我不知道为什么我把$this放在撇号里。我排了几队就做对了。我很确定我必须将lvl传递到函数中,但它现在就像一个符咒。谢谢。
return $(this).attr('lvl') > lvl;