我有一个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);
}
});
答案 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"))
})