【问题标题】:jQuery: if string matches one of these href'sjQuery:如果字符串匹配这些href之一
【发布时间】:2011-05-17 23:28:52
【问题描述】:

我的代码中有这个变量:

var href = $(this).attr('href'),
str = href.split('/').slice(-2,-1)[0];

如何检查“images”、“images-2”还是“images-3” 匹配'href'字符串,然后做一些事情..

【问题讨论】:

    标签: javascript jquery string href


    【解决方案1】:
    if href.match(/images(-[23])?/){
        doStuf();
    }
    

    应该可以解决问题。

    【讨论】:

    • 不过,我会将其设为非捕获组 (?:)。但这是正确的正则表达式。
    【解决方案2】:

    看看这个: http://api.jquery.com/category/selectors/

    你可以有类似的东西: $('[href^="images"]')

    编辑: 如果您愿意,您也可以制作自己的选择器。 http://dpatrickcaldwell.blogspot.com/2010/03/custom-jquery-selector-for-external-and.html

    James Padolsey 已经写了一篇适合你的文章。 http://james.padolsey.com/javascript/regex-selector-for-jquery/

    【讨论】:

    • AFAICT,OP 不知道 href 将以图像开头,只是它会包含图像。 jQuery 选择器是一个不错的选择,但如果他对它有足够的了解就可以这样做。
    • jxpx777,我同意,但我不知道这是否意味着您不应该使用那里的东西。 ~= 是包含选择器。如果名称不以 image 开头,它也适用于这种情况。编辑:显然,输入并没有做我认为在这些输入框中所做的事情:)。 api.jquery.com/attribute-contains-word-selector
    • 另一件事是它不允许仅限于图像、图像 2、图像 3。 ~= images 仍会捕获图像 12,严格阅读 OP 会认为这是不可接受的。
    • 也许,但如果是这样的话,我会说你需要一个很好的理由来通过 javascript 来完成它,而不是仅仅添加一个类和使用 CSS。我的猜测是该操作正在寻找一种在 jquery 选择器中匹配模式的方法。情况可能并非如此。我只是把信息放在那里。如果您觉得我的回答没有增加价值,请随时投反对票。我只是想帮忙。
    • 如果我当时知道的话会更清楚。它是按顺序排列的“图像”,所以在这种情况下,如果它捕捉到“图像 12”,它就可以完美运行,但感谢您告诉我。
    猜你喜欢
    • 1970-01-01
    • 2014-10-09
    • 2011-10-19
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多