2011-10-02 83 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。你使用了什么浏览器? –