2012-10-18 46 views
1

我想創建所選元素的每個子元素的寬度數組。我試過了:如何在jQuery中創建數組

var width = $(element).children().map(function() { return this.style.width; }); 

但是這不起作用。當我alert(width[0])然後而不是顯示寬度它顯示objectHtmlElement。我做錯了什麼?

回答

3

嘗試.width()只有設置了內聯樣式,樣式屬性纔有效。

var widths = $(element).children().map(function() { return $(this).width(); }); 
3

如果你想要得到的基本數組,你應該叫get方法,映射方法返回一個jQuery包裹的陣列。

由於返回值是一個jQuery包裝的數組,所以get()返回的對象與基本數組一起工作很常見。

var widths = $(element).children().map(function() { 
    return this.style.width; 
}).get(); 
1
var obj = $('li'); 
var arr = $.makeArray(obj); 

結果將是:

(typeof obj === 'object' && obj.jquery) === true; 
jQuery.isArray(arr) === true; 
0

使用jQuery寬度()和地圖後得到():

var widths = $(element).children().map(function() { 
    return $(this).width(); 
}).get();