使用jQuery设置表标题的宽度TH

使用jQuery设置表标题的宽度TH,jquery,jquery-selectors,telerik,Jquery,Jquery Selectors,Telerik,我正在使用telerik mvc网格和自定义行模板。所以,因为我已经完成了我的行模板,我对th的宽度有问题。我不能正确设置宽度,所以我不能制作一个简单的文档准备函数来设置每个th的宽度 function SetWidth(){ var ths = $('th'); var element = ths[0]; element.width(100); } 然后我将手动设置0=100、1=110、2=300 px等等 但当我尝试添加“元素”的宽度时,它会给我错误 Uncaug

我正在使用telerik mvc网格和自定义行模板。所以,因为我已经完成了我的行模板,我对th的宽度有问题。我不能正确设置宽度,所以我不能制作一个简单的文档准备函数来设置每个th的宽度

function SetWidth(){
    var ths = $('th');
    var element = ths[0];
    element.width(100);
}
然后我将手动设置0=100、1=110、2=300 px等等

但当我尝试添加“元素”的宽度时,它会给我错误

Uncaught TypeError: Property 'width' of object #<HTMLTableCellElement> is not a function
Uncaught TypeError:对象的属性“width”不是函数

有什么问题吗?

尝试改用css方法:

element.css('width', '100');
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];
    }
}
函数SetWidth(){
变量宽度=[100110300]

对于(var i=0;i您将jQuery元素转换回标准DOM元素,而标准DOM元素上没有
width
方法。

因为您使用的是标准DOM元素。您可以这样更改宽度

function SetWidth(){
    var ths = $('th');
    var element = ths[0];
    element.style.width = 100;
}

var ths=$('th');
var element=th.eq(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')

这一个有效,但我想给我的TH's的不同宽度。例如Name-200px Name2-100px让我知道这是否有效。我不太确定你要求的是什么?你想为每个TH设置一个手动值吗?还是希望每个TH's比最后一个小100?即使你想使用另一个作为你的解决方案,也要确保你看到此解决方案。它将使用比当前解决方案少得多的代码,并且编辑速度更快。
    var ths = $('th:eq(0)').css('width', '100')