在jQuery中我正在使用它来获取一些HTML:
var content = $("tr#add-ingredients-over-here").html();
但是,我实际上需要在所选HTML中包含tr
。我无法弄清楚如何做到这一点。我还需要用其他HTML替换它。
有关如何执行此操作的任何建议吗?
答案 0 :(得分:2)
您要找的是元素的 outerHTML 。你可以试试这个:
var content = $("#add-ingredients-over-here")[0].outerHTML;
所有当前浏览器都支持此功能。 Firefox是最后一个在Firefox 11中添加对此的支持(2012年3月);所有其他浏览器已经支持至少4年了。如果您必须支持比this stackoverflow thread更早的浏览器,那么基于jQuery的实现可以在任何地方使用:
jQuery.fn.outerHTML = function() {
return $(this).length > 0 ? $(this).clone().wrap('<div />').parent().html() : '';
};
答案 1 :(得分:0)
另一种完全跨浏览器的方法。制作tbody的克隆,删除除了想要的行之外的所有行并从中检索html
var content = $("#add-ingredients-over-here")
.parent().clone().find('tr:not(#add-ingredients-over-here)').remove()
.end().html()
编辑:如果您需要整个clone()
,为什么不能只使用TR
?克隆可以作为jQuery对象插入到另一个表中
/*copy whole row to another table*/
$('#otherTable').append( $("#add-ingredients-over-here").clone() );
答案 2 :(得分:-1)
尝试
$("tr#add-ingredients-over-here").parent().html();
它将首先检索父级,然后返回其HTML内容