我有一个包含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");
答案 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);