getNodesBy NameIndexed

Publicado por Fernando Rodrigo Bilinski 18/02/2005

[ Hits: 3.638 ]

Download getNodesByNameIndexed.js




Consegue todos os elementos que possuem o 'name' que coincida com a string ou expressão regular dada.

Semelhante a função nativa getElementsByName com o diferencial de indexar os elementos da mesma forma que seriam indexados no PHP, portanto se o nome do elemento represanta um elemento de array, ele ira retornar como uma array.

  



Esconder código-fonte

function getNodesByNameIndexed( node, name ){
   var re = new RegExp( name + "[\[]([0-9]+)\]([\[]([0-9]+)\])?" );
   var nodes = getNodesByName( node, re );
   var nodesIndexed = new Array();
   var index;
   for( var i = 0; i < nodes.length; i++ ){
      nome = nodes[i].getAttribute('name');
      index = re.exec( nome );
      if( typeof(index[3]) != "undefined" ){
         aux = getNodesByNameIndexed( node, name + "[\[]"+ index[1] +"\]" );
      }else{
         aux = nodes[i];
      }
      nodesIndexed[index[1]] = aux;
   }
   return nodesIndexed;
}

function getNodesByName( node, name ){
   var nodes = new Array();
   var childs = node.childNodes;

   for( var i = 0; i < childs.length; i++ ){
      if( typeof(name) == "string" ){
         if( childs[i].nodeType != "1" )
            continue;

         if( childs[i].getAttribute('name') == name ){
            nodes.push( childs[i] );
         }
      }else if( typeof( name.test ) == "function" ){
         if( childs[i].nodeType != "1" )
            continue;

         if( name.test( childs[i].getAttribute('name') ) ){
            nodes.push( childs[i] );
         }
      }
      if( childs[i].hasChildNodes() ){
         nodes = nodes.concat( getNodesByName( childs[i], name ) );
      }
   }
   return nodes;
}

Scripts recomendados

e-mule

Veja se a pagina possui som de fundo

jones ribeiro

Sms tipo PHP para sites java ou Html

Barra de Status


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts