1

我有一个带有 divs ids 的数组(在我的情况下,它的所有 divs ID 值 od parent 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

4 回答 4

4

对它进行疯狂的摆动(见我对这个问题的评论):

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

这假设getIdArray返回一个字符串数组,其中每个字符串是id一个 DOM 元素的值,并且您想要获取left这些元素中的第一个的值。

例如,如果数组返回为:

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

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

于 2013-03-11T14:19:23.677 回答
2

如果您的变量中有一个实际的 JS 数组,array只需使用括号表示法来访问每个单独的 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
于 2013-03-11T14:19:37.447 回答
1

我想你正在寻找这个:

var divYouWantToChange = $("#"+array[0]);
于 2013-03-11T14:22:19.310 回答
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);
于 2013-03-11T14:34:52.380 回答