按模式查找id(不需要jquery或第三方库)

Find id by pattern (Without jquery or 3rd party libraries)

本文关键字:第三方 jquery 不需要 模式 查找 id      更新时间:2023-09-26

我有一个按钮:

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

中间的数字有时会因其他框架的内部工作而发生变化。我需要能够找到这个按钮,不管中间的数字是多少。所以我需要找到只有中间的数会改变的模式。所以我需要这样写:

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

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

您可以使用document.querySelectorAll():

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

JSFiddle

此外,如果您想要稍微耍一下,这是一个很好的方法(如果不是那么有效):

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