获取HTML标记和文本

时间:2013-03-05 15:07:57

标签: jquery html

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

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

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

我尝试过.text() .html() .contents(); .parent().html()。函数.parent().html()最接近我想要的,但它给了我所有带标签和文本的行,而不是我想要的那些。

所以我要保存在我的变量中的是<th>First Column</th>而不只是First Column

以下是我尝试过的一个小提琴示例,以及基本HTML标记和我研究过的API的链接:

Fiddle

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

更新

对于那些好奇我为什么要这样做,这是我的旁边项目:

Table Sorter

3 个答案:

答案 0 :(得分:3)

您可以使用outerHTML属性。

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

或者:

var html = this.outerHTML;

http://jsfiddle.net/Qy8GS/

答案 1 :(得分: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());

答案 2 :(得分: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标记。对于每个th代码,仅输出原始th中索引的tr。您尝试获取的变量是colHeader