首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代多个数据选择器

替代多个数据选择器
EN

Stack Overflow用户
提问于 2016-10-09 21:19:13
回答 1查看 511关注 0票数 1

我使用jplist插件并遵循贡献者的建议来切换排序。

但是有多个数据属性选择器的问题。

要触发,我需要通过数据路径、数据顺序等多个属性来选择元素,我不知道为什么:我不能使用具有多个属性的选择器触发。控制台不会显示任何错误。只是这不管用

代码语言:javascript
复制
$('#toggle-order1').click(function() {

   // current sort button selected in sort group 1 -- return data-path
   var sortpath1 = $('#sortgroup1 .jplist-selected').attr('data-path');

   // current sort button selected in sort group 1 -- return data-order
   var sortorder1 = $('#sortgroup1 .jplist-selected').attr('data-order');

   if (sortorder1 == 'asc') {
       // *** This doesn't click any button
       $('button[data-path="' + sortpath1 + '"] [data-order="desc"]').trigger('click');

       // *** This work but click all buttons that have data-path equals to sortpath1
       $('button[data-path="' + sortpath1 + '"]').trigger('click');

   }
   else if (sortorder1 == 'desc') {
       // *** This doesn't click any button
       $('button[data-path="' + sortpath1 + '"] [data-order="asc"]').trigger('click');

       // *** This work but click all buttons that have data-path equals to sortpath1
       $('button[data-path="' + sortpath1 + '"]').trigger('click');
   }
});

html按钮:

代码语言:javascript
复制
<div id="sortgroup1" class="jplist-box" data-control-type="sort-buttons-group" data-control-name="sort-buttons-group-1" data-control-action="sort" data-mode="single">

   <button id="set-asc-1" name="set" class="jplist-drop-down" data-path=".set" data-group="group1" data-type="text" data-order="asc" data-selected="false">
       Sort by Set AZ
   </button>

   <button id="set-desc-1" name="set" class="jplist-drop-down" data-path=".set" data-group="group1" data-type="text" data-order="desc" data-selected="false">
       Sort by Set ZA
   </button>

   <button id="price-asc-1" name="price" class="jplist-drop-down" data-path=".price" data-group="group1" data-type="number" data-order="asc" data-selected="false">
       Sort by Price ASC
   </button>

   <button id="price-desc-1" name="price" class="jplist-drop-down" data-path=".price" data-group="group1" data-type="number" data-order="desc" data-selected="false">
       Sort by Price DESC
   </button>

</div>

html切换

代码语言:javascript
复制
<button id="toggle-order1"><i class="fa"></i></button>

欢迎所有建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-09 21:28:58

您必须删除属性之间的空格,因此

代码语言:javascript
复制
$('button[data-path="' + sortpath1 + '"] [data-order="desc"]')

变成这样

代码语言:javascript
复制
$('button[data-path="' + sortpath1 + '"][data-order="desc"]')
//                                     ^^ look ma, no space

否则,您将寻找子代元素,就像使用

代码语言:javascript
复制
$('div span')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39948640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档