0

セレクターを使用して取得している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);
}
});
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 に答える