3

カスタム行テンプレートでtelerikMVCグリッドを使用しています。行テンプレートが完成したので、幅に問題があります。幅を正しく設定できないので、各番目の幅を設定する簡単なドキュメントレディ関数を作成できません。

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

次に、0 = 100、1 = 110、2 =300pxなどを手動で設定します。

しかし、「要素」の幅を追加しようとすると、エラーが発生します。

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()は、を使用したときにthを通過した要素のタイプである標準の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];
    }
}
于 2012-07-05T17:25:54.933 に答える
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 に答える
0

代わりにcssメソッドを使用してみてください。

element.css('width', '100');
于 2012-07-05T17:25:39.057 に答える
0

jQuery要素を標準のDOM要素にキャストし直しますが、標準のDOM要素にはwidthメソッドがありません。

于 2012-07-05T17:26:57.200 に答える