3

我正在使用带有自定义行模板的 Telerik mvc 网格。因此,由于我已经完成了行模板,因此我的宽度有问题。我无法正确设置宽度,所以我无法制作一个简单的文档准备功能来设置每个 th 的宽度。

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

有什么问题?

4

5 回答 5

3

由于您使用的是标准 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);
于 2012-07-05T17:32:41.967 回答
1

width() 不是标准 DOM 元素的有效 javascript 方法,这是您在使用 th 时传递给的元素类型$("th")[0]。虽然它是 jQuery 的一种方法。

你会想要这样做:

function SetWidth(){
    var widths = [100, 110, 300]
    for(var i=0; i<widths.length; i++){
        $('th')[i].style.width = widths[i];
    }
}
于 2012-07-05T17:25:54.933 回答
0

您将 jQuery 元素转换回标准 DOM 元素,并且在width标准 DOM 元素上没有任何方法。

于 2012-07-05T17:26:57.200 回答
0

尝试改用 css 方法:

element.css('width', '100');
于 2012-07-05T17:25:39.057 回答
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元素,你可以使用 jQueryeq()方法:

    var ths = $('th:eq(0)').css('width', '100')
于 2012-07-05T17:38:33.640 回答