我正在尝试使用JS / jQuery创建动态数组。 HTML结构是:
<ul>
<li><img src="1"/></li>
<li><img src="2"/></li>
<li><img src="3"/></li>
</ul>
我正在尝试创建一个新的图像源数组,因此最终看起来像:
var imagesArray = [1, 2, 3];
我以为我可以使用jQuery .each()
方法...但我一直迷路。如果你能提供解释我会非常感激。
谢谢!
答案 0 :(得分:4)
var imagesArray = $('img').map(function(){ return this.src; }).get();
以下是演示:http://jsfiddle.net/pkeBZ/
jQuery's .map()
method遍历所有元素,收集从回调函数返回的任何内容,并从中创建一个新数组。
但是,返回的结果表现得像一个数组,但实际上是一个jQuery对象(授予它,它可能对你的用例没有任何影响)。
如果要将jQuery对象转换为数组,可以使用jQuery's .get()
method。
答案 1 :(得分:2)
您认为正确:)您可以使用jQuery .each()方法..如下所示..
<script type="text/javascript">
$(document).ready(function(){
var imagesArray =new Array();
$("ul li img").each(function(){
imagesArray.push($(this).attr('src'));
});
console.log(imagesArray); // this returns ["1", "2", "3"]
});
</script>
答案 2 :(得分:1)
使用此代码段在jquery中循环数组
1)首先我们声明一个arrray
var MapAreas = [];
2)现在我们使用foreach循环
$.each(MapAreas, function (index, value) {
alert(index + ':' + value);
}
3)要检查数组中是否已存在值,请使用此代码段
if ($.inArray(value, MapAreas) >= 0) {}
4)要从数组中删除项目,请使用此函数
RemoveItemFromArray(value, arr) {
return jQuery.grep(arr, function (elem, index) {
return elem !== value;
});
}