我目前正在创建一个表,允许我按升序和降序对行进行排序,以及单击和拖动列。我有这个工作,但我想改进它。目前我正在获取标题和单元格元素文本,然后将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()
更新
对于那些好奇我为什么要这样做,这是我的旁边项目:
答案 0 :(得分:3)
您可以使用outerHTML
属性。
var html = $(this).prop('outerHTML');
或者:
var html = this.outerHTML;
答案 1 :(得分: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
。