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
reading all spans of a div dynamically
提问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,然后遍历它们并将它们添加到对象中。使用textContent和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;
}
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];
}

