función auxiliar en js puro para detección de clases en IE<9
Código HTML:
Ver original<!DOCTYPE html>
<script type="text/javascript"> //<![CDATA[
//versiones IE < 9
/* Descomentar este bloque para probar la funcion que_clases() en spam "verifica"
window.onload=function(){
if (document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(className){
var tieneClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
var todosLosElementos = document.getElementsByTagName("*");
var resultados = [];
var elementos;
for (var i = 0; (elementos = todosLosElementos[i]) != null; i++) {
var elementoClase = elementos.className;
if (elementoClase && elementoClase.indexOf(className) != -1 && tieneClassName.test(elementoClase))
resultados.push(elementos);
}
return resultados;
}
}
}
*/
// variante, ver si un elemento tiene una clase específica
function tieneClase(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function tc(e,c){
if(tieneClase(e,c)){
alert('Este elemento tiene clase ' + c);
}else{
alert('Este elemento no tiene clase ' + c);
}
}
function que_clases(){
var a = document.getElementsByClassName('a');
var b = document.getElementsByClassName('b');
var c = document.getElementsByClassName('c');
var ac = document.getElementsByClassName('a c');
var ca = document.getElementsByClassName('c a');
alert('texto de primer elemento con clase a = ' + a[0].innerHTML);
alert('texto de primer elemento con clase b = ' + b[0].innerHTML);
alert('texto de segundo elemento con clase c = ' +c[1].innerHTML);
alert('texto de primer elemento con clase a c = ' +ac[0].innerHTML);
alert('texto de tercer elemento con clase c a = ' +ca[2].innerHTML);
}
//]]>
<span style="cursor: pointer;" onclick="que_clases();"><b>Verificar
</b></span> <p class="a b c">texto
</p> <p class="a c">texto 2
</p> <p class="a b">texto 3
</p> <p class="a comentario" onclick="tc(this,'comentario')">texto 4
</p> <p class="c a">texto 5
</p>
<p class="a b c">texto</p>
<p class="a c">texto 2</p>
<p class="a b">texto 3</p>
Edito:
Por las dudas, ya que recibí varios comentarios al respecto, el sentido del código de ejemplo es probarlo en IE8 (si tienen IE9 F12 y cambiar a modo IE8)
SAludos