2011-02-07 16 views
6

Mam div wewnątrz, które mam liczbę przęseł. Teraz chcę, aby przeczytać cały tekst wszystkich przęseł wraz z thrir id i wypełnić go w javascript mapie, gdzie klucz = spanid i value =”tekst span.How mogę to zrobić?czytanie wszystkich przęseł div dynamicznie

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

    </div> 

Jak mogę wypełnić mapa

Odpowiedz

9

można uzyskać stosując elementy i document.getElementsByTagNamedocument.getElementById, następnie iterację nich i dodać je do obiektu. Użyj textContent and innerText aby uzyskać tekst elementu span i wstaw je do obiektu tak:

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; 
} 

Zobacz pracuje tutaj: http://www.jsfiddle.net/SJs4h/

-2

jQuery jego bardzo prosta:

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

nadzieję, że pomogło

Aktualizacja: Non. e jQuery sposób:

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

Niestety, nie mogę użyć jQuery – akshay

+0

I został uaktualniony kod: -) – WEBProject

+0

przypisanie zwykłego javascript jest nieprawidłowe – knittl

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