3

現在、行を昇順と降順で並べ替えたり、列をクリックしてドラッグしたりできるテーブルの作成に取り組んでいます。私はそれを機能させていますが、それを改善したいと思います。現在、ヘッダーとセル要素のテキストを取得してから、HTMLタグを文字列に連結しています。

var row = "<td>" + myData + "</td>";

私が知りたいのは、jQueryに、1つの要素だけにタグが付けられたテキストを取得できるメソッド/関数があるかどうかです。

私は試し.text() .html() .contents(); .parent().html()ました。この関数.parent().html()は私が望むものに最も近いものですが、私が望むものだけではなく、タグとテキストを含むすべての行を提供します。

したがって、変数に保存したいのは<th>First Column</th>、だけではありませんFirst Column

これは私が試したもののフィドルの例であり、基本的なHTMLマークアップと私が調査したAPIへのリンクがあります。

フィドル

.text() . html( ).contents( .parent()

アップデート:

なぜ私がこれをしているのか興味がある人のために、ここに私のサイドプロジェクトがあります:

テーブルソーター

4

3 に答える 3

3

プロパティを使用できouterHTMLます。

var html = $(this).prop('outerHTML');

または:

var html = this.outerHTML;

http://jsfiddle.net/Qy8GS/

于 2013-03-05T15:11:38.370 に答える
1

http://jsfiddle.net/aCTva/1/

$.fn.outerHTML = function () {
    var $t = $(this).eq(0);
    if ("outerHTML" in $t[0]) {
        return $t[0].outerHTML;
    } else {
        return $t.clone().wrap('<div></div>').parent().html();
    }
};


alert($(this).outerHTML());
于 2013-03-05T15:14:22.497 に答える
0

新しい jsFiddle: http://jsfiddle.net/EdD7U/2/

$("tr").each(function () {
    var colIndex = 0;

    $(this).find("td").each(function () {
        $(this).parent().parent().find('th')
            .each(function(index) {
                if (index == colIndex) {
                    var colHeader = $(this).prop("outerHTML");
                    alert(colHeader);
                }
            });

        colIndex++;
    });            
});

基本的に、現在の のインデックスを保存してからtr、いくつかの親を dom まで ( に) 取得し、タグtableを見つけます。タグthごとに、元の からインデックスののみを出力します。取得しようとしている変数は です。ththtrcolHeader

于 2013-03-05T15:36:45.583 に答える