javascript 动态读取 div 的所有跨度

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4918821/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-25 15:21:32  来源:igfitidea点击:

reading all spans of a div dynamically

javascripthtml

提问by akshay

I have a div inside which i have number of spans. Now i want to read all text of all spans along with thrir id and populate it into a javascript map where key = spanid and value =" text of span.How can i do it?

我有一个 div,里面有多个跨度。现在我想读取所有跨度的所有文本以及 thrir id 并将其填充到 javascript 映射中,其中 key = spanid 和 value = 跨度文本。我该怎么做?

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

   </div>

How can i populate the map?

我怎样才能填充地图?

回答by Yi Jiang

You can get the elements using document.getElementByIdand document.getElementsByTagName, then iterate through them and add them to the object. Use textContentand innerTextto obtain the text of the spanelement, and insert them into the object like so:

您可以使用document.getElementByIdand获取元素document.getElementsByTagName,然后遍历它们并将它们添加到对象中。使用textContentinnerText获取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;
}

See it working here: http://www.jsfiddle.net/SJs4h/

看到它在这里工作:http: //www.jsfiddle.net/SJs4h/

回答by derekcohen

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

回答by WEBProject

Using Jquery its very simple:

使用 Jquery 非常简单:

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

Hope i helped.

希望我有所帮助。

Update:None jquery way:

更新:无 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];
}