【问题标题】:Find (.find()) element based on data attribute using wildcard in jQuery在jQuery中使用通配符根据数据属性查找(.find())元素
【发布时间】:2016-10-07 16:05:42
【问题描述】:

美好的一天!

我无法在这里找到我正在寻找的答案,因为它似乎更精确一些。我正在寻找的是一种基于数据属性查找元素的方法,其中值以特定字符串开头。

也就是说,我希望这两个被选中:

<a class="button" href="#" data-action="view" ...>
<a class="button" href="#" data-action="view-default" ...>

我认为这会起作用,但它没有:

$(this).find('.button[data-action^="view"]')

似乎 jQuery 无法在查找查询中进行过滤...

【问题讨论】:

  • 你的代码工作正常jsfiddle.net/ekd0wq0f ...我想问题是你的目标是$(this)
  • 是的,问题是在你的代码中引用 this 是什么???
  • 这怎么能正常工作呢? $(this).find('.button[data-action="view"]')(没有^)...
  • 没关系,我的 .js 文件缓存了旧代码。很抱歉打扰你们:)
  • 那么请请求删除这个问题

标签: jquery filter find


【解决方案1】:

您可以使用过滤器代替查找,并且可以使用这样的数据

$(function() {    
    $('.button').filter(function(){
      
        return $(this).data("action")  == 'view' }).css({background:'red'
                                                         
    });  
});

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2014-03-12
    • 2011-05-11
    • 2023-03-29
    • 2011-12-16
    相关资源
    最近更新 更多