按模式查找id(没有jquery或第三方库)

时间:2015-07-08 18:44:30

标签: javascript pattern-matching

我有一个按钮:

<button id="btn:1:uniquenamehere">btn</button>

中间的数字有时会因其他框架内部工作而发生变化。无论中间的数字如何,我都需要能够找到这个按钮。所以我需要通过模式找到它,只有中间数字会改变。所以我需要这样的东西:

document.getElementById("btn:*:uniquenamehere")

我看到了使用jquery的方法,但是我无法使用第三方库。我怎么能用纯javascript做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用document.querySelectorAll()

var elems = document.querySelectorAll('[id$="uniquenamehere"]');

JSFiddle

答案 1 :(得分:0)

另外,如果你想愚弄一下,这是一种很好的(如果不是那么有效)方式:

function getButton (buttonid) {
    var buttons = document.getElementsByTagName('button');
    for (var i = 0; i < buttons.length; i += 1) {
        if (buttons[i].id.slice(buttons[i].id.length - buttonid.length) === buttonid) {
            return buttons[i];
        }
    }
    return null;
}

<强> JSFiddle