2013-03-11 82 views
1

值我有div的ID的數組(在我的情況下,它的所有div ID值OD父DIV(#area)):jQuery的獲取從動態數組

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"); 
+2

恐怕你的問題是有點太* *「最小」。 ;-)什麼是getIdArray的返回值?你的意思是你需要獲得一個數組字段的值(這個短語相當清楚,但後面的代碼似乎並沒有涉及到它)。 – 2013-03-11 14:18:42

+0

這是你如何使用array $('#'+ array [0]).css(「left」); – hop 2013-03-11 14:19:14

+0

我們仍然不知道.getIdArray()返回。如果你有一個自定義過濾器,你可以:$(「#area」)。filter(function(){//如果你想使用這個過濾器,則返回true}).css(「left」 – HMR 2013-03-11 14:28:11

回答

4

以野生擺動它(見我對這個問題的評論):

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

這假定getIdArray返回一個字符串數組,其中每個字符串都是一個DOM元素的id值,並且您希望爲這些元素中的第一個獲取left值。

因此,舉例來說,如果陣列回來爲:

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

然後通過"#" + array[0]創建的選擇是#foo,所以你最終得到的left價值爲foo元素。

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 
1

我認爲你正在尋找這樣的:

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

我嘗試制訂以此爲答案,因爲getIdArray不是一個jQuery函數,我們不知道那是什麼。如果您想將自定義過濾器應用於$(「#area」)集合,您可以使用過濾器來實現。這將返回一個jquery對象,您可以從中獲取.css(「left」)。

如果你想節省的ID和左屬性,您可以用下面的代碼這樣做:

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