0

我有一组使用选择器的文本区域。然后我正在迭代并尝试根据其当前宽度为其设置最大宽度(它们并不完全相同,这就是我这样做的原因)。但是,我无法访问数组中元素的 .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);
}
});
4

3 回答 3

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

于 2012-05-16T19:38:34.160 回答
0
var a = $('.myTextAreaCssClass');

a.each(function() {
  w = $(this).width();
  $(this).css('max-width',w + 'px');
});
于 2012-05-16T19:39:18.773 回答
0

尝试这个:

$('.myTextAreaCssClass').each(function(){
    $(this).css("max-width", $(this).css("width"))
})
于 2012-05-16T19:40:18.417 回答