没有通用的 JavaScript 函数(至少不是跨浏览器),但您可以使用.getElementsByTagName
并迭代结果:
var arrDivs = document.getElementsByTagName("div");
for (var i = 0; i < arrDivs.length; i++) {
var oDiv = arrDivs[i];
if (oDiv.id && oDiv.id.substr(0, 1) == "a") {
//found a matching div!
}
}
这是您可以获得的最低级别,因此您不必担心旧浏览器、新浏览器或未来的浏览器。
要将其包装成一个更整洁的函数,您可以:
function GetElementsStartingWith(tagName, subString) {
var elements = document.getElementsByTagName(tagName);
var result = [];
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
if (element.id && element.id.substr(0, subString.length) == subString) {
result.push(element);
}
}
return result;
}
使用示例是:
window.onload = function() {
var arrDivs = GetElementsStartingWith("div", "a");
for (var i = 0; i < arrDivs.length; i++) {
arrDivs[i].style.backgroundColor = "red";
}
};
现场测试用例。
如果您在某个时候选择使用 jQuery(仅此一项不值得),所有上述代码都会变成单行:
$(document).ready(function() {
$('div[id^="a"]').css("background-color", "blue");
});
使用 jQuery 更新小提琴。