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

时间:2012-07-05 17:23:20

标签: jquery jquery-selectors telerik

我正在使用带有自定义行模板的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

有什么问题?

5 个答案:

答案 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')