È possibile utilizzare libreria di selezione, ad esempio Sizzle: http://sizzlejs.com/ ma se si vuole JS puri che presumo sono bloccati con ottenere tutti gli elementi, e poi programmaticamente "raccolta manuale" quelli che hanno le classi siete interessati ad utilizzare RegEx in questo modo, per esempio:
questo è l'equivalente del vostro oneliner JQuery:
for(i in document.all) document.all[i].className && /\bpost-text\b/g.test(document.all[i].className) && (document.all[i].style.color = "red")
:)
Se non ne hai bisogno in una sola riga è possibile renderlo più veloce (e molto più leggibile):
var myClassName = "someClass";
var regexp = RegExp("\\b"+myClassName+"\\b/g");
var elements = document.all;
for(i in elements){
var this_element = elements[i];
if(regexp.test(this_element.className){
this_element.style.color = "red";
}
}
Se "per (in oggetto) "non funziona per te, usa solo il classico ciclo per" per (var i = 0; i < elements.length; i ++)".
Potrebbe essere 'abbelliti' un po 'con l'uso di alcuni concetti JS leggermente più avanzati (mappature funzione di matrice, piegatura e ad), quale versione JS stai codifica agains? I immagino che non è ECMA script 5, giusto?
Inoltre, controllare la domanda/risposta Get All Elements in an HTML document with a specific CSS Class
Questo ma essere utile: http://stackoverflow.com/questions/1933602/how-to-getelementbyclass-instead-of-getelementbyid-with-javascript – IsisCode
@Cheery non è un duplicato. L'OP desidera esplicitamente una risposta non jquery. – JaredPar
@JaredPar Mi dispiace, non ho letto molto attentamente. – Cheery