jquery - 基于 .data() 键/值的过滤元素

标签 jquery filter

假设我有 4 个类为 .navlink 的 div 元素,单击它们时,使用 .data() 设置一个名为 'selected',为 true 的值:

$('.navlink')click(function() { $(this).data('selected', true); })

每次单击新的 .navlink 时,我想存储先前选择的 navlink 以供以后操作。有没有一种快速简便的方法可以根据使用 .data() 存储的内容来选择元素?

似乎没有任何 jQuery :filters 符合要求,我尝试了以下方法(在同一个点击事件中),但由于某种原因它不起作用:

var $previous = $('.navlink').filter( 
    function() { $(this).data("selected") == true }
);

我知道还有其他方法可以做到这一点,但现在我主要是想知道是否可以通过 .data() 来完成。

最佳答案

您的过滤器可以工作,但您需要在传递给过滤器的函数中匹配对象时返回 true,以便它抓取它们。

var $previous = $('.navlink').filter(function() { 
  return $(this).data("selected") == true 
});

关于jquery - 基于 .data() 键/值的过滤元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009485/

相关文章:

javascript - Javascript 中的自然流量与付费流量

javascript - 根据分辨率改变一个JS函数

javascript - 替代正则表达式来隐藏匹配的 id 元素?

javascript - 简化 jQuery 以检测输入值的变化

javascript - JQuery隐藏复选框检查,但不取消检查

javascript - 获取匹配特定值的 JSON 对象

python - pandas数据框的条件过滤

python - python条件过滤多列

Python/Django object.filter(pk__in=variable_list)

javascript - 使用 Lodash 比较对象数组和整数数组