2011-02-07 6 views
6

Tengo un div dentro del cual tengo un número de tramos. Ahora quiero leer todo el texto de todos los tramos junto con thrir Identificación y rellenarla en un mapa javascript donde key = spanid y value =" texto de span.How puedo hacerlo?leyendo todos los tramos de un div dinámicamente

Eg <div mydiv="xyx" > 
    <span id ="sp1" > M/span> 
    <span id ="sp2" > M/span> 
    .... 
     .. 

    </div> 

¿Cómo puedo llenar el mapa

Respuesta

9

, usted puede obtener utilizando los elementos document.getElementByIddocument.getElementsByTagName y, a continuación, iterar a través de ellos y añadirlos al objeto. textContent and innerText utilizar para obtener el texto del elemento span, e insertarlos en el objeto de esta manera:

var spans = document.getElementById('xyx').getElementsByTagName('span'), 
    obj = {}; 

for(var i = 0, l = spans.length; i < l; i++){ 
    obj[spans[i].id] = spans[i].textContent || spans[i].innerText; 
} 

ver su funcionamiento aquí: http://www.jsfiddle.net/SJs4h/

-2

usando jQuery es muy sencilla:?

var spans = $('#xyx').find('span'); 
var arr = new Array(); 
foreach(spans as span) 
{ 
     arr[$(span).attr('id')] = $(span).text; 
} 

Espero ayudado

actualización:. no e jQuery manera:

var spans = document.getElementById('xyx'); 
spans = spans.getElementsByTagName('span'); 
var arr = new Array(); 
foreach(spans as span) 
{ 
    arr[span.getAttribute('id')] = arr[span.innerHTML]; 
} 
+0

Lo sentimos, no puedo usar jQuery – akshay

+0

He actualizado el código: -) – WEBProject

+0

asignación de javascript simple es incorrecto – knittl

2
var container=document.getElementById('xyx'); 
var spanArray=container.getElementsByTagName('span'); 
for(var s=0;s<spanArray.length;s++){ 
    spanText=spanArray[s].innerHTML; 
} 
Cuestiones relacionadas