Как получить все элементы по имени класса на чистом javascript? Аналоговый $('. Class') в JQuery?
Как получить все элементы по имени класса?
Ответ 1
document.getElementsByClassName(klass)
Имейте в виду, что некоторые движки (особенно старые браузеры) не имеют его. Вы можете рассмотреть возможность использования прокладки, если это так. Это будет медленно, и перебирать весь документ, но это будет работать.
РЕДАКТИРОВАТЬ несколько лет спустя: вы можете получить тот же результат, используя document.querySelectorAll('.klass')
, что не так уж и много, но последний допускает запросы к любому селектору CSS, что делает его гораздо более гибким в случае " получить все элементы по имени класса "- это просто шаг в том, что вы действительно пытаетесь сделать, и это ванильный ответ JS на jQuery $('.class')
.
Ответ 2
Простой и простой способ
var cusid_ele = document.getElementsByClassName('custid');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
item.innerHTML = 'this is value';
}
Ответ 3
document.getElementsByClassName('your class');
или вы можете построить свое имя класса, как это, если это не работает, попробуйте это
if (!document.getElementsByClassName) {
document.getElementsByClassName=function(cn) {
var allT=document.getElementsByTagName('*'), allCN=[], i=0, a;
while(a=allT[i++]) {
a.className==cn ? allCN[allCN.length]=a : null;
}
return allCN
}
}
Ответ 4
Ответ 5
Это должно работать:
function(className)
{
var matchingItems = [];
var allElements = document.getElementsByTagName("*");
for(var i=0; i < allElements.length; i++)
{
if(allElements [i].className == className)
{
matchingItems.push(allElements[i]);
}
}
return matchingItems;
}
Ответ 6
Несколько описанных методов и скорость протестированы здесь: http://ejohn.org/blog/getelementsbyclassname-speed-comparison/
Ответ 7
function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}