获取所选的HTML,包括所选的

时间:2013-01-13 22:55:30

标签: javascript jquery html

  

可能重复:
  Get selected element’s outer HTML

在jQuery中我正在使用它来获取一些HTML:

var content = $("tr#add-ingredients-over-here").html();

但是,我实际上需要在所选HTML中包含tr。我无法弄清楚如何做到这一点。我还需要用其他HTML替换它。

有关如何执行此操作的任何建议吗?

3 个答案:

答案 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内容