javascript - jQuery selector 一定是字符串和0到9之后的数字吗?

标签 javascript jquery

我有这个 HTML 元素

            <button id="btn7">7</button>
            <button id="btn8">8</button>
            <button id="btn9">9</button><button id="btnMulti">*</button>
            <button id="btn4">4</button>
            <button id="btn5">5</button>
            <button id="btn6">6</button><button id="btnDiv">/</button>
            <button id="btn1">1</button>
            <button id="btn2">2</button>
            <button id="btn3">3</button><button id="btnPlus">+</button>
            <button id="btn0">0</button>
            <button id="clear">C</button>
            <button id="clearEntry">CE</button><button id="btnMinus">-</button>
            <button id="equal">=</button>

我如何选择所有属性 id 包含“btn”和后面一些数字的按钮元素?换句话说 - 按钮:“btn[0-9]”。它应该是这样的:

$(':button[id^="btn"]').match(/[0-9]/);

最佳答案

您可以使用 James Padolsey 创建的过滤器,希望对您有所帮助

http://james.padolsey.com/javascript/regex-selector-for-jquery/

在 jQuery 之后的文件中添加它

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^s+|s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

用法:

// Select all elements with an ID starting a vowel:
$(':regex(id,^[aeiou])');

// Select all DIVs with classes that contain numbers:
$('div:regex(class,[0-9])');

// Select all SCRIPT tags with a SRC containing jQuery:
$('script:regex(src,jQuery)');

// Yes, I know the last example could be achieved with 
// CSS3 attribute selectors; it's just an example...

更新 2:

你可以使用你的问题:$('button:regex(id,btn[0-9])')

请查找更新的CodePen

关于javascript - jQuery selector 一定是字符串和0到9之后的数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34133150/

相关文章:

javascript - 固定 Gridview 元素模板列宽和使用链接按钮查看详细信息

php - 通过回显将日期时间/时间戳从 PHP 传递到 Javascript

javascript - onKeyUp 不工作的javascript

javascript - 如何在发送请求时向 Ajax 响应传递附加参数

Jquery:将数据宽度存储在变量中并将其应用于伪元素

javascript - WebStorm IDE 文件监视 CoffeeScript 创建一个空文件

javascript - 覆盖 tr onclick

jQuery 在两个容器之间可拖放且可排序

用于在文本字段上自动完成选择的 jQuery 监听器

javascript - 如何在 Backbone View 中获取调整大小事件?