动态读取div的所有跨度

时间:2011-02-07 07:08:21

标签: javascript html

我有一个div,其中我有多个跨度。现在我想阅读所有跨度的所有文本以及thrir id并将其填充到javascript地图中,其中key = spanid和value =“span of text。我该怎么做?

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

   </div>

我如何填充地图?

3 个答案:

答案 0 :(得分:12)

您可以使用document.getElementByIddocument.getElementsByTagName获取元素,然后迭代它们并将它们添加到对象中。使用textContent and innerText获取span元素的文本,并将其插入对象中,如下所示:

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

在此处查看:http://www.jsfiddle.net/SJs4h/

答案 1 :(得分:3)

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

答案 2 :(得分:-1)

使用Jquery非常简单:

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

希望我帮助过。

<强>更新 没有jquery方式:

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