属性大于传递变量(.filter())的jQuery元素
jQuery elements with attribute greater than passed variable (.filter())
我知道我可以使用jQuery的.filter()按属性过滤。我还知道,自从W3C在HTML5中正式实现data-thing以来,使用这种自定义属性是不受欢迎的。
但我还是想知道为什么这不起作用。
JS:
$("[id^=hide]").click(function() {
var lvl = $(this).attr('lvl');
var id = $(this).attr('tar');
$('#' + id).slideToggle(100);
$('div').filter(function(lvl) {
return $('this').attr('lvl') > lvl;
}).slideToggle(100);
});
HTML: <a id="hide1" lvl="0" tar="1"></a>
<div id="1" lvl="0"></div>
<a id="hide2" lvl="1" tar="2"></a>
<div id="2" lvl="1"></div>
<a id="hide3" lvl="2" tar="3"></a>
<div id="3" lvl="2"></div>
<a id="hide4" lvl="2" tar="4"></a>
<div id="4" lvl="2"></div>
<a id="hide5" lvl="1" tar="5"></a>
<div id="5" lvl="1"></div>
<a id="hide7" lvl="2" tar="7"></a>
<div id="7" lvl="2"></div>
我想达到的是。1. 点击链接。2. 滑动切换靠近链接的div。3.滑动切换所有level属性大于该链接level属性的div
我也试着这样做:
$("[id^=hide]").click(function() {
var lvl = $(this).attr('lvl');
var id = $(this).attr('tar');
$('#' + id).slideToggle(100);
hideOthers(lvl);
});
var hideOthers = function(lvl) {
$('div').filter(function(lvl) {
return $('this').attr('lvl')> lvl;
}).slideToggle(100);
}
但这也不起作用。什么好主意吗?
更新小提琴
在代码的这一行:
$('div').filter(function(lvl) {
在jquery filter()函数中作为索引的lvl
,因此函数中lvl的值为[0 - 1 - 2 ....]nbr_of_divs] .
要解决这个问题,只需从参数中删除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 ? lvl : $('this').attr('lvl');
相关文章:
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 使用返回函数sinde.attr()jquery元素
- Wooccommerce所有JS和Jquery元素都未加载
- 追加JQuery元素和Angular
- 如何获取jQuery集合中的第k个元素..作为JQUERY元素
- 是否存在jQuery元素选择库的最小化版本
- 不能同时通过类和数字 ID 选择 jquery 元素
- 为什么jquery元素在ipad上没有响应
- Jquery元素用法
- 用于获取jQuery元素或值的方法
- 淡入淡出切换jquery元素
- 用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
- 选择具有由 data() 设置的某个值的 JQuery 元素
- Jquery 元素的高级过滤
- 链接到另一个带有jQuery元素的页面
- jQuery:通过 .wrap() 添加到 DOM 的 jQuery 元素上的切换类
- 将字符串转换为 jquery 元素并将其追加到 DOM 中
- 与“click”事件一起存储的jQuery元素未按要求工作
- 在哈希数组中保存对 jquery 元素的引用
- 如何从核心JavaScript选择中获取jquery元素