Javascript getElementById 基于部分字符串

2022-08-30 05:14:12

我需要获取元素的ID,但值是动态的,只有它的开头总是相同的。

下面是代码的一个片段。

<form class="form-poll" id="poll-1225962377536" action="/cs/Satellite">

ID 始终以 开头,然后数字是动态的。poll-

我如何仅使用JavaScript而不是jQuery来获取ID?


答案 1

您可以使用查询选择器

document.querySelector('[id^="poll-"]').id;

选择器的意思是:获取一个元素,其中属性以字符串开头。[id]"poll-"

^匹配开始
匹配任何位置
匹配结束*$

jsfiddle


答案 2

试试这个。

function getElementsByIdStartsWith(container, selectorTag, prefix) {
    var items = [];
    var myPosts = document.getElementById(container).getElementsByTagName(selectorTag);
    for (var i = 0; i < myPosts.length; i++) {
        //omitting undefined null check for brevity
        if (myPosts[i].id.lastIndexOf(prefix, 0) === 0) {
            items.push(myPosts[i]);
        }
    }
    return items;
}

示例 HTML 标记。

<div id="posts">
    <div id="post-1">post 1</div>
    <div id="post-12">post 12</div>
    <div id="post-123">post 123</div>
    <div id="pst-123">post 123</div>
</div>

称它为

var postedOnes = getElementsByIdStartsWith("posts", "div", "post-");

此处演示:http://jsfiddle.net/naveen/P4cFu/