Foros del Web » Programando para Internet » Javascript »

[APORTE] Easy Selector

Estas en el tema de [APORTE] Easy Selector en el foro de Javascript en Foros del Web. Hola, Hice este codigo para selecionar los objetos como en jquery (#id o .class o tag). Los formatos que acepta: ID: Cita: #ID (<div id="mi_id">) ...
  #1 (permalink)  
Antiguo 18/08/2009, 15:03
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 1 mes
Puntos: 101
[APORTE] Easy Selector

Hola,
Hice este codigo para selecionar los objetos como en jquery (#id o .class o tag).
Los formatos que acepta:
ID:
Cita:
#ID (<div id="mi_id">) esto selecionara el id de cualquier tag
TAG#ID(<p id="id">) esto solo selecionara el id del tag elejido
TAG#ID TAG(<p id="id"><div>) esto selecionara los tag del id
#ID TAG (<div id="id"><p>) esto selecionara todos los tag del id
CLASS:
Cita:
.CLASS
TAG.CLASS
TAG.CLASS TAG
TAG:
Cita:
TAG
El codigo es:
Código javascript:
Ver original
  1. /**
  2. * EasySelector
  3. * BY: pato12 de forosdelweb.com
  4. * WEBS: halfmusic.com - halfwars.com
  5. ***/
  6. var EasySelector=function(selector){
  7.     var DOMs=[];
  8.     if(selector.indexOf("#")>=0||selector.indexOf(".")>=0){
  9.         var sep=selector.indexOf("#")>=0?selector.split("#"):selector.split(".");
  10.         if(selector.indexOf("#")!=-1){
  11.             if(selector.indexOf(" ")==-1 && sep[0]=='')return [document.getElementById(sep[1])];
  12.             var TagID=sep[0],sep=sep[1].split(' ');
  13.             if(TagID!=''){
  14.                 for(var e=0,total=document.getElementsByTagName(TagID);e<total.length;e++){
  15.                     if(total[e].id==sep[0]){
  16.                         if(selector.indexOf(" ")==-1){
  17.                                 DOMs.push(total[e]);
  18.                         }else{
  19.                             dom=total[e].getElementsByTagName(sep[1]);
  20.                             for(var i=0;i<dom.length;i++)
  21.                                 DOMs.push(dom[i]);
  22.                         }
  23.                         break;
  24.                     }
  25.                 }
  26.                 return DOMs;
  27.             }
  28.         }
  29.         var v=document.getElementsByTagName(sep[0]==''?'*':sep[0]),s=sep[1].indexOf(" ")>=0?sep[1].split(' '):false,tag=!s?false:s[1],classNameBuscar=tag?sep[1].split(' ')[0]:sep[1];
  30.         for(var i=0;i<v.length;i++){
  31.             for(var j=0,c=v[i].className.split(" ");j<c.length;j++){
  32.                 if(c[j]==classNameBuscar){
  33.                     if(!tag)
  34.                         DOMs.push(v[i]);
  35.                     else{
  36.                         t=v[i].getElementsByTagName(tag);
  37.                         for(var k=0;k<t.length;k++)
  38.                             DOMs.push(t[k]);
  39.                     }
  40.                 }
  41.             }
  42.         }
  43.         return DOMs;
  44.     }else{
  45.         var tags=document.getElementsByTagName(selector);
  46.         for(var i=0;i<tags.length;i++)
  47.             DOMs.push(tags[i]);
  48.         return DOMs;
  49.     }
  50. };
Lo pueden usar con este otro script:
Código javascript:
Ver original
  1. Array.prototype.each=function(fn){
  2.     if(this.constructor === Array || typeof fn == 'function'){
  3.         for(var i=0,total=this.length;i<total;i++)
  4.             fn.call(this[i]);
  5.     }
  6. };
Ejemplo de uso:
Código javascript:
Ver original
  1. window.onload=function(){
  2.     EasySelector('div').each(function(){
  3.         this.style.color='#FFF';
  4.     });
  5. };
Gracias
Salu2
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 18/08/2009 a las 15:12
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:35.