javascript - JS/jQuery - 在每个()函数中扩展 Var

标签 javascript jquery each

我有两个采用这种格式的列表:

<ul id="filters" class="option-set button-group" data-filter-group="kategorie">
    <li>
        <a href="#" data-filter=".corporatedesign">Corporate Design</a>
    </li>
    <li>
        <a href="#" data-filter=".webdesign">Webdesign</a>
    </li>
</ul>

在 Javascript 中有一个点击函数,可以向链接元素添加或删除“isotopeactive”类:

$('#filters a').click(function(){
    var $this = $(this);                
    if ( $this.hasClass('isotopeactive') ) {
        $this.removeClass('isotopeactive');
    }else{
        $this.addClass('isotopeactive');
    }

问题是获取所有数据过滤器 - 来自“同位素 active ”的所有元素的数据到一个变量中。我的第一次尝试是这样的,但它不起作用..

var filterValue = '';
var i = 0;  

$( ".isotopeactive" ).each(function() {
    filterValue += $this.attr('data-filter');
    i++;
});

最后我想要得到这样的东西: filterValue =>“.corporatedesign .webdesign”

有什么建议吗?谢谢! :)

最佳答案

我建议:

var data = $('.isotopeactive').map(function(){
             return this.dataset.filter;
           }).get();

对于那些未实现数据集的旧浏览器:

var data = $('.isotopeactive').map(function(){
             return this.getAttribute('data-filter');
           }).get();

或者:

var data = $('.isotopeactive').map(function(){
             return $(this).data('filter');
           }).get();

这将向 data 变量返回一个值数组。

引用文献:

关于javascript - JS/jQuery - 在每个()函数中扩展 Var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126764/

相关文章:

javascript - jQuery 查找文本并使用每个函数写入另一个标签属性

Jquery问题.click .each

javascript - jQuery 错误 - $(el).css ('float' ) 绝对或固定时 - 不同的浏览器返回不同的结果

javascript - 获取对象中的第一个字符串 javascript lodash

javascript - 根据插入符号的位置从文本区域中提取整个单词

ruby - 在 Enumerable 的 each 中阻止链接,允许吗?

javascript - Knex JS - 在同一查询中(同时)更新和选择

javascript - 我想将我的数据附加到表格下方并在用户单击产品 ID 字段时进行搜索

javascript - Codeigniter 上的 Sweet Alert js

javascript - 使用 javascript 创建图像 slider