3

我目前正在创建一个表格,该表格允许我按升序和降序对行进行排序,以及单击并拖动列。我有这个工作,但我想改进它。目前我正在获取标题和单元格元素文本,然后将 HTML 标记连接到字符串:

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

我想知道的是,如果 jQuery 有一种方法/函数,可以让我获取带有仅附加到一个元素的标签的文本。

我试过了.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 (to ) 中抓取一些父母table,然后找到th标签。对于每个th标签,只输出th原始索引的tr。您要获取的变量是colHeader.

于 2013-03-05T15:36:45.583 回答