javascript - JQuery - 如何将 class() 添加到与属性值匹配的元素

标签 javascript jquery sorting

我有一组用于排序的链接,例如。类别、名称、日期,并有另一组升序/降序。最初加载页面时,不会选择其中任何一个,并且结果不会按任何顺序排列。当做出选择时,我需要为两个组提供值,即。排序依据和排序顺序。

例如,如果用户选择按“类别”排序,则以下函数将使用 ASC 作为默认排序方向。然后,我还需要能够通过将“selected”类添加到链接来突出显示带有 data-option-value="asc"的链接。

有人可以帮忙吗?

        $('.sort a').click(function(e) {
            var $this = $(this);

            // Turn 'selected' class on/off
            if ($this.hasClass('selected'))
                return false;
            $this.parents('.sort-set').find('.selected').removeClass('selected');
            $this.addClass('selected');

            if($('.sortKey a.selected').attr('data-option-value')){
                key = $('.sortKey a.selected').attr('data-option-value');
            } else {
                 var key = 'date';
                 //.addClass('selected');  HOW TO DO THIS??
            }

            if($('.sortOrder a.selected').attr('data-option-value')){
                order = $('.sortOrder a.selected').attr('data-option-value');
            } else {
              var order = "asc";  
              //.addClass('selected');  HOW TO DO THIS??
            }

            $container.isotope({sortBy: valBy, sortAscending: valAscending});

            return false;
          });

                    <div class="option-combo sort">
                        <ul class="sort sort-set clearfix sortKey">
                            <li><a href="#" data-option-value="name">Name</a></li>
                            <li><a href="#" data-option-value="category">Category</a></li>
                            <li><a href="#" data-option-value="date">Expiry Date</a></li>
                        </ul>
                    </div>
                    <div class="option-combo sort">
                        <ul class="sort sort-set clearfix sortOrder">
                            <li><a href="#" data-option-value="asc">Ascending</a></li>
                            <li><a href="#" data-option-value="desc">Descending</a></li>
                        </ul>
                    </div>

最佳答案

您可以在选择器中使用属性值:

$("element[attribute='value']").addClass('selected')

根据您的评论,您可能需要执行以下操作:

$("a[data-option-value='asc']", ".sortOrder").addClass('selected')

关于javascript - JQuery - 如何将 class() 添加到与属性值匹配的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264259/

相关文章:

c++ - 基于排序的分区(如快速排序)

javascript - 在 HTML 中创建类似 Microsoft Office Word 表格生成器的控件

javascript - 使用 webpack v2.2 时,webpack-dev-server 是否已弃用 "--content-base"?

javascript - 显示表中的隐藏行

javascript - HTML 和 Javascript 搜索引导卡

r - 多列合并导致奇怪的排序

javascript - Subspace JavaScript 跨域通信的实现?

javascript - 在 Javascript 中使用 innerHTML 更改值

javascript - 如何在 struts 2 中将一个表的内容传输到另一个表?

Python Sorted() 与 itemgetter 和比较器