我想知道是否可以动态地在JavaScript中创建var
并将它们返回到全局变量中。例如:
<div id="parent">
<span class="span_1">content</span>
<span class="span_2">another</span>
<span class="span_3">yup content</span>
</div>
以及以下功能:
function getContent() {
var divs = $('#parent').children('span').length;
for(var i = 1; i < divs; i++) {
jQuery('.span_'+i).html(); //this returned as global variables for each span
}
}
正如您所看到的,我想循环遍历跨度HTML并希望将每个跨度的内容变量作为全局变量。我该怎么做?
由于
答案 0 :(得分:3)
您可以这样使用.map()
:
var globalVar; // javascript set the value as "undefined".
然后在你的函数中执行以下操作:
function getContent() {
globalVar = $('#parent span').map(function(){
return $(this).text();
}).get();
//results in --> globalVar = ["content", "another", "yup content"]
}
.map()
创建一个包含选择器集合的数组,并确保将其与.get()
链接以获取数组中的集合。
答案 1 :(得分:2)
您可以使用jQuery map()
方法获取包含span元素内容的数组,如下所示:
var spanContents = $("#parent span").map(function(i, elm) {
return $(elm).text(); // or html() if applicable
}).get();
console.log(spanContents);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">
<span class="span_1">content</span>
<span class="span_2">another</span>
<span class="span_3">yup content</span>
</div>
答案 2 :(得分:0)
除了遍历该循环(应该像Jai所说的那样从1开始),你可以使用"Attribute starts with" selector。
例如:
$('#parent span[class^="span_"])
将返回一个数组,每个范围的类在#parent元素中以“span_”开头。