选择具有复杂ID模式的元素

时间:2015-06-08 11:06:36

标签: javascript jquery regex

我有一组这样的按钮:

<button id="grid1_createBtn">Create</button>
<button id="grid1_updateBtn">Update</button>
<button id="grid2_createBtn">Create</button>
...

这些按钮没有任何课程,所以我需要通过他们的ID选择它们。 &#34;网格&#34; id的一部分是静态的,所有按钮都是相同的。我找到this answer,但我不想使用​$("[id^=grid]"),因为可能是其他一些带有起始ID&#34; grid&#34;的元素。存在。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:6)

要选择带正则表达式的按钮,您可以使用filter,如下所示:

$('button').filter(function(){
    return /^grid\d+_\w+Btn$/.test(this.id)
})

答案 1 :(得分:0)

试试这个:

var id= 1;
$("button[id*='grid" + id+ "_createBtn']");

答案 2 :(得分:0)

只要您的所有按钮都以grid开头并以Btn结尾,您也可以合并下面的属性选择器。

$('button[id^="grid"][id$="Btn"]')

-A Demo-

答案 3 :(得分:0)

你可以结合!

$("[id^='grid'][id$='Btn']")

$("[id^='grid'][id$='Btn'][id*='_']")

或者您可以与Denis Seguret aproach混合使用

$("button[id^='grid']").filter( 
    function(){
        return /^grid\d+_(create|update)Btn$/.test(this.id);
    }
)

这比仅过滤器更快。