更改集合textareas的css最大宽度

时间:2012-05-16 19:34:21

标签: javascript jquery css

我有一个textareas的集合,我正在使用选择器。我正在迭代并尝试根据其当前宽度设置每个的最大宽度(它们不完全相同,这就是我这样做的原因)。但是,我无法访问数组中元素的.css属性,我猜是因为它们是HTMLTextAreaElements?有没有办法让这项工作或更好的方法来解决这个问题?

我无法静态设置最大宽度,因为这是一个通用控件,可用于各种页面并具有各种不同的大小。

$(function () {
var a = $('.myTextAreaCssClass');
for(var i = 0;i < a.length; i++) {
var w = a[i].css(width);
a[i].css('max-width',w);
}
});

3 个答案:

答案 0 :(得分:2)

我认为你应该使用$ .each。试试这个,

$(function () {
   var a = $('.myTextAreaCssClass');
   a.each (function () {
      $(this).css('max-width', $(this).css('width'));
   });
});

或者您可以使用下面给出的css函数参数,

$(function () {
   var a = $('.myTextAreaCssClass');
   a.css ('max-width', function () {
      return $(this).css('width');
   });
});

修改 我刚刚意识到这只是将最大宽度设置为我在css文件中指定的宽度,我需要的是宽度(以像素为单位) - jas

试试这个,

$(function () {
   var a = $('.myTextAreaCssClass');
   a.css ('max-width', function () {
      return $(this).width(); //returns computed width
   });
});

注意:width()函数有不同版本,因此请相应使用。请参阅:https://stackoverflow.com/a/10018686/297641

答案 1 :(得分:0)

var a = $('.myTextAreaCssClass');

a.each(function() {
  w = $(this).width();
  $(this).css('max-width',w + 'px');
});

答案 2 :(得分:0)

试试这个:

$('.myTextAreaCssClass').each(function(){
    $(this).css("max-width", $(this).css("width"))
})