2011-03-09 19 views
9

que tiene el siguiente código y yo estoy tratando de hacer que se acople en una clase en lugar de en un id:JS Prototype obtiene elemento por clase?

HTML:

<div id='testdiv'> 
    <div class="lol"> 
     [First Title|<a class="external" href="http://test.com">http://test.com</a>] 
     Another line 
     [Second Title|<a class="external" href="http://test.com">http://test.com</a>] 
     More text 
     [Third Title|<a class="external" href="http://test.com">http://test.com</a>] 
    </div> 
</div> 

Javascript:

var textContainer = document.getElementById("testdiv"); 
var linkText = textContainer.innerHTML; 
var pattern = /\[([^|]+)\|([^>]+.?)[^<]*(<\/a>)\]/g; 
var result = linkText.replace(pattern, "$2$1$3"); 

textContainer.innerHTML = result; 

ejemplo completo: http://jsfiddle.net/JFC72/17/

¿Cómo puedo hacer que coincida con "myclass" en su lugar? Gracias!

Respuesta

0

la diferencia entre clase y la identificación que sólo un elemento puede tener el mismo id, pero más elementos pueden tener la misma clase.

yo si se desea seleccionar los elementos con la misma clase que usted debe pensar aboute no siempre hay un elemento

onload=function(){ 
if (document.getElementsByClassName == undefined) { 
    document.getElementsByClassName = function(className) 
    { 
     var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)"); 
     var allElements = document.getElementsByTagName("*"); 
     var results = []; 

     var element; 
     for (var i = 0; (element = allElements[i]) != null; i++) { 
      var elementClass = element.className; 
      if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) 
       results.push(element); 
     } 

     return results; 
    } 
} 
} 

espero que esto funciona.

también se puede utilizar jQuery selector de clase http://api.jquery.com/class-selector/

9

creo que es necesario el método $$. Selecciona los elementos DOM que coinciden con un selector de CSS estricto. En este caso, quiere

var elements = $$('.myclass'); 

Devuelve una lista de todos los elementos coincidentes en orden de documento. Se puede acceder a ellos por el índice o que operen en todos ellos con cosas como each

http://www.prototypejs.org/api/utility

Esto es lo que está a punto de prototipos. getElementById es oooold

3

Este es un ejemplo práctico de cómo usaría each en Prototype para recorrer todos los elementos con una clase de order-cc-charged.

var order_cc_charged = 0; 

$$('order-cc-charged').each(function (elem) { 
    order_cc_charged += parseFloat($('order-cc-charged').innerHTML); 
}); 
Cuestiones relacionadas