getNodesBy NameIndexed

Publicado por Fernando Rodrigo Bilinski 18/02/2005

[ Hits: 3.961 ]

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

Editor java html php asp e flash o melhor ja visto

Manda Mensagem Icq ao clicar no link

Var_dump

Calculadora Javascript

Barra de busca Google


  

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