Javascript / jQuery动态数组

时间:2012-01-03 03:15:24

标签: javascript jquery

我正在尝试使用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()方法...但我一直迷路。如果你能提供解释我会非常感激。

谢谢!

3 个答案:

答案 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;

    });

}