jQuery从动态数组中获取价值

时间:2013-03-11 14:16:49

标签: javascript jquery arrays

我有一个包含divs id的数组(在我的例子中,所有div的ID值都是父div(#area)):

jQuery.fn.getIdArray = function () {
 var ret = [];
 $('[id]', this).each(function () {
  ret.push(this.id);
 });
 return ret;
 };

var array = $("#area").getIdArray();

我需要得到一个数组字段值,如下所示:

var lef = $("#array".[0]).css("left");

4 个答案:

答案 0 :(得分:4)

对此大加赞赏(参见我对这个问题的评论):

var array = $("#area").getIdArray();
var lef=$("#" + array[0]).css("left");

假设getIdArray返回一个字符串数组,其中每个字符串是DOM元素的id值,并且您希望获得第一个字符串的left值那些元素。

例如,如果数组返回为:

["foo", "bar", "charlie"]

然后由"#" + array[0]创建的选择器为#foo,因此您最终会获得left元素的foo值。

答案 1 :(得分:2)

如果变量array中有实际的JS数组,只需使用括号表示法访问每个ID。

// I have the # before-hand since I'm assuming you have just the ID name
var lef = $('#' + array[0]) // this will access the 1st one in the array

答案 2 :(得分:1)

我认为你正在寻找这个:

var divYouWantToChange = $("#"+array[0]);

答案 3 :(得分:1)

我尝试将其作为答案来表达,因为getIdArray不是jquery函数,我们不知道它的作用。如果您想将自定义过滤器应用于$(“#area”)集合,则可以使用过滤器执行此操作。这将返回一个jquery对象,您可以从中获取.css(“left”)。

如果您想同时保存id和left属性,可以使用以下代码:

var objects=[];
$("#area").filter(function(){
  $this=$(this);//cache the object
  objects.push({id:$this.attr("id"),
   left:$this.css("left")
  };
});
console.log(objects);