Foros del Web » Programando para Internet » Javascript »

getElementsByClassName() en IE8

Estas en el tema de getElementsByClassName() en IE8 en el foro de Javascript en Foros del Web. Buenas tardes, actualmente estoy programando una web en la que uso repetidas veces la funcion getElementsByClassName() de javascript y ahora es que me vengo a ...
  #1 (permalink)  
Antiguo 04/04/2013, 10:54
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años, 6 meses
Puntos: 8
getElementsByClassName() en IE8

Buenas tardes, actualmente estoy programando una web en la que uso repetidas veces la funcion getElementsByClassName() de javascript y ahora es que me vengo a dar cuenta que esa funcion no anda en IE 8 y sus versiones anteriores:S mi pregunta es como podria simular dicha funcion para estas versiones de IE?

a los que me puedan ayudar muchas gracias de ante mano
  #2 (permalink)  
Antiguo 04/04/2013, 11:04
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: getElementsByClassName() en IE8

lo mejor que puedo recomendarte es jQuery, pero tienes que refactorizar
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 04/04/2013, 12:29
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: getElementsByClassName() en IE8

Cita:
Iniciado por maycolalvarez Ver Mensaje
lo mejor que puedo recomendarte es jQuery, pero tienes que refactorizar
disculpa me podrias dar algun ejemplo sencillo de como se usaria en jquery?
  #4 (permalink)  
Antiguo 04/04/2013, 18:37
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: getElementsByClassName() en IE8

función auxiliar en js puro para detección de clases en IE<9

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5.  
  6. <script type="text/javascript">
  7. //<![CDATA[
  8.  
  9. //versiones IE < 9
  10. /*  Descomentar este bloque para probar la funcion que_clases() en spam "verifica"
  11. window.onload=function(){
  12. if (document.getElementsByClassName == undefined) {
  13.     document.getElementsByClassName = function(className){
  14.         var tieneClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
  15.         var todosLosElementos = document.getElementsByTagName("*");
  16.         var resultados = [];
  17.         var elementos;
  18.         for (var i = 0; (elementos = todosLosElementos[i]) != null; i++) {
  19.             var elementoClase = elementos.className;
  20.             if (elementoClase && elementoClase.indexOf(className) != -1 && tieneClassName.test(elementoClase))
  21.                 resultados.push(elementos);
  22.         }
  23.         return resultados;
  24.     }
  25. }
  26. }
  27. */
  28.  
  29. // variante, ver si un elemento tiene una clase específica
  30. function tieneClase(ele,cls) {
  31.  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
  32. }
  33.  
  34.  
  35. function tc(e,c){
  36. if(tieneClase(e,c)){
  37. alert('Este elemento tiene clase ' + c);
  38. }else{
  39. alert('Este elemento no tiene clase ' + c);
  40. }
  41. }
  42.  
  43.  
  44. function que_clases(){
  45. var a = document.getElementsByClassName('a');
  46. var b = document.getElementsByClassName('b');
  47. var c = document.getElementsByClassName('c');
  48. var ac = document.getElementsByClassName('a c');
  49. var ca = document.getElementsByClassName('c a');
  50. alert('texto de primer elemento con clase a = ' + a[0].innerHTML);
  51. alert('texto de primer elemento con clase b = ' + b[0].innerHTML);
  52. alert('texto de segundo elemento con clase c = ' +c[1].innerHTML);
  53. alert('texto de primer elemento con clase a c = ' +ac[0].innerHTML);
  54. alert('texto de tercer elemento con clase c a = ' +ca[2].innerHTML);
  55. }
  56. //]]>
  57. </head>
  58. <div>
  59. <span style="cursor: pointer;" onclick="que_clases();"><b>Verificar</b></span>
  60. <p class="a b c">texto</p>
  61. <p class="a c">texto 2</p>
  62. <p class="a b">texto 3</p>
  63. <p class="a comentario" onclick="tc(this,'comentario')">texto 4</p>
  64. <p class="c a">texto 5</p>
  65. </div>
  66. <div>
  67. <pre>
  68.  
  69. &lt;p class=&quot;a b c&quot;&gt;texto&lt;/p&gt;
  70. &lt;p class=&quot;a c&quot;&gt;texto 2&lt;/p&gt;
  71. &lt;p class=&quot;a b&quot;&gt;texto 3&lt;/p&gt;
  72. </pre>
  73. </div>
  74. </body>
  75. </html>

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
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 05/04/2013 a las 05:46

Etiquetas: funcion, ie8
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:43.