获取父元素html以及子内容

时间:2014-12-26 16:39:39

标签: javascript jquery

我试图获取父元素html以及子内容。结构如下所示......

<form>
<div id="my-div">
<span>My Span</span>
</div>
</form>

在我的情况下我只能访问"my-div"对象并且我想要遍历"form",然后获取包括表单html在内的整个内容。我一直在尝试的是

$('#my-div').parent().html() - 实际上是从中提供内容。但我想要的是<form>

3 个答案:

答案 0 :(得分:2)

尝试:

$("#my-div").closest("form")[0].outerHTML;

https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML

或使用.prop()

$("#my-div").closest("form").prop("outerHTML");

无论您将孩子放在哪里.closest("form")#my-div都会为您提供父FORM元素。

<强> jsBin demo

答案 1 :(得分:2)

$('#my-div').parent().prop('outerHTML')

答案 2 :(得分:1)

虽然这可以通过jQuery实现,但是大部分都是不必要的花费,因为必须解析jQuery对象,然后从对象中检索DOM节点(除非使用prop()),使用纯JavaScript它便宜一点:

var htmlString = document.getElementById('my-div').parentNode.outerHTML;

var html = document.getElementById('my-div').parentNode.outerHTML;

document.getElementById('htmlResult').textContent = html;
#htmlResult {
  white-space: pre-wrap;
  padding: 0.5em;
  color: #666;
  border: 1px solid #000;
  border-radius: 1em;
}
#htmlResult::before {
  content: 'Result: ';
  color: #aaa;
  display: block;
}
<form>
  <div id="my-div">
    <span>My Span</span>
  </div>
</form>
<div id="htmlResult"></div>

参考文献: