getNodesBy NameIndexed

Publicado por Fernando Rodrigo Bilinski 18/02/2005

[ Hits: 3.494 ]

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

MinApp

Script para envio de varias menssagens

Script que faz o Navegador Tremer

Modelo de site

Teste de Conexão


  

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