我正在使用带有自定义行模板的telerik mvc网格。因为我已经完成了我的行模板,所以我的宽度有问题。我无法正确设置宽度,因此我无法创建一个简单的文档就绪函数来设置每个宽度。
function SetWidth(){
var ths = $('th');
var element = ths[0];
element.width(100);
}
然后我会手动设置0 = 100,1 = 110,2 = 300 px等等。
但是当我尝试添加'element'的宽度时,它会给我错误。
Uncaught TypeError: Property 'width' of object #<HTMLTableCellElement> is not a function
有什么问题?
答案 0 :(得分:2)
因为您使用的是标准DOM元素。您可以像这样更改宽度
function SetWidth(){
var ths = $('th');
var element = ths[0];
element.style.width = 100;
}
或
var ths = $('th');
var element = ths.eq(0); //<-- instead of ths[0]
element.width(100);
答案 1 :(得分:1)
width()不是标准DOM元素的有效javascript方法,它是您在使用$("th")[0]
时传递给的元素的类型。这是jQuery的一种方法。
你会想要这样做:
function SetWidth(){
var widths = [100, 110, 300]
for(var i=0; i<widths.length; i++){
$('th')[i].style.width = widths[i];
}
}
答案 2 :(得分:0)
请尝试使用css方法:
element.css('width', '100');
答案 3 :(得分:0)
您将jQuery元素转换回标准DOM元素,并且标准DOM元素上没有width
方法。
答案 4 :(得分:0)
试试这个:
function SetWidth(){
var ths = $('th');
var element = ths[0]; // this gets a raw dom object
element.style.width = 100; // therefor you should use style property
}
或者如果你想选择第一个th
元素,你可以使用jQuery eq()
方法:
var ths = $('th:eq(0)').css('width', '100')