2011-10-02 123 views
0

有些表格和許多textareas在一些單元格中。 帶textarea的單元格跨越多行(2,3,4或更多行)。 我想讓textareas佔據整個細胞區域。如何使用jQuery設置textarea高度

我可以用jQuery做到這一點,但它需要很長時間,瀏覽器會發出警告。

$("textarea").each(function() { 
    $(this).height($(this).parent().height()); 
}); 

有沒有更好的方法?

謝謝。

山姆

回答

0

我打開了這個測試:

http://jsperf.com/jquery-each-vs-for-loop/4

哪些(運行測試後)顯示。每個()是由其他迭代器在性能方面黯然失色。如果您可以設計一種方法來使用該頁面上顯示的高性能迭代器之一,那麼您顯然會看到更好的結果。

編輯:這個作品,但無論是否有一個性能優勢,我不能說:

http://jsfiddle.net/T7wzT/1/

var $textarea = $('textarea'); 
numTextareas = $textarea.length; 
for (var i = 0, len = numTextareas; i < len; i++) { 
$textarea.eq(i).height($textarea.parent().height()); 
} 
0

我缺少的東西,或者爲什麼你就不能使用CSS樣式身高:100%上textareas?

看到這個jsFiddle:http://jsfiddle.net/J2njk/

+0

它會工作,如果你指定一個特定的高度。它不適用於高度自動(默認瀏覽器行爲)或最小高度。但我同意;如果指定了高度,則應該使用CSS而不是JS來完成。 –

+0

它不適用於我的Firefox。你使用了什麼瀏覽器? –