遍历 HTML 内容和 return 值作为全局变量
Loop through HTML content and return values as global variables
我想知道是否可以在 JavaScript 中动态创建 var
并将它们 return 放入全局变量中。示例:
<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 并希望将每个跨度的内容变量作为全局变量。我该怎么做?
谢谢
您可以使用 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>
您可以这样使用.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()
链接以获取数组中的集合。
除了遍历该循环(应该像 Jai 所说的那样从 1 开始),您还可以使用 "Attribute starts with" selector.
例如:
$('#parent span[class^="span_"])
将 return 一个数组,每个跨度在你的#parent 元素中具有 class 以 'span_' 开头。
我想知道是否可以在 JavaScript 中动态创建 var
并将它们 return 放入全局变量中。示例:
<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 并希望将每个跨度的内容变量作为全局变量。我该怎么做?
谢谢
您可以使用 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>
您可以这样使用.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()
链接以获取数组中的集合。
除了遍历该循环(应该像 Jai 所说的那样从 1 开始),您还可以使用 "Attribute starts with" selector.
例如:
$('#parent span[class^="span_"])
将 return 一个数组,每个跨度在你的#parent 元素中具有 class 以 'span_' 开头。