循环遍历HTML内容并将值作为全局变量返回

时间:2015-01-02 10:49:42

标签: javascript jquery html

我想知道是否可以动态地在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并希望将每个跨度的内容变量作为全局变量。我该怎么做?

由于

3 个答案:

答案 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_”开头。