Javascript 返回jquery中元素和元素的html

Javascript 返回jquery中元素和元素的html,javascript,jquery,Javascript,Jquery,我已经加价了 <div id="div1"> <div id="div2"> blah blah </div> </div> 废话 如果我使用$(“#div1”).html(),它将返回div#div2。但是我想得到完整的html。i、 e,以及div#div1 有什么方法可以做到这一点吗?我想说,尝试选择父元素,或者另一种方法是: var html = $('<div>').append($('#top')

我已经加价了

<div id="div1">
   <div id="div2">
     blah blah
   </div>
</div>

废话
如果我使用$(“#div1”).html(),它将返回div#div2。但是我想得到完整的html。i、 e,以及div#div1


有什么方法可以做到这一点吗?

我想说,尝试选择父元素,或者另一种方法是:

var html = $('<div>').append($('#top').clone()).remove().html();
var html=$('').append($('#top').clone()).remove().html();

我想说,尝试选择父元素,或者另一种方法是:

var html = $('<div>').append($('#top').clone()).remove().html();
var html=$('').append($('#top').clone()).remove().html();
您可以尝试:

$('#div1')[0].outerHTML
编辑:

相同的解决方案,但不使用jQuery(更好的性能):

你可以试试:

$('#div1')[0].outerHTML
编辑:

相同的解决方案,但不使用jQuery(更好的性能):

使用.parent():

然而,这也将得到所有兄弟姐妹的html。您可以将div1包装到另一个div中…:)

使用.parent():

然而,这也将得到所有兄弟姐妹的html。您可以将div1包装到另一个div中…:)

.html()
返回
innerHTML
您需要使用outerHTML。可能会有帮助。

.html()
返回
innerHTML
您需要的outerHTML。可能会有帮助。

尝试以下方法:

:)
特殊需要功能,现在您可以将其用于您自己的任何用途

justtext
将为您获取父标记的唯一文本,其中as
internal
版本将为您获取子标记文本

希望对您有所帮助。
:)

您可以很好地将其添加到项目中的公共javascript文件中,或者对其进行自定义,并将其用作项目中的插件

代码

jQuery.fn.justtext = function() {

    return $(this).clone()
            .children()
            .remove()
            .end()
            .text();

};

jQuery.fn.justtextinner = function() {

    return $(this).clone()
            .children()
            .end()
            .text();

};

alert($('#div1').justtextinner());​
试试这个:

:)
特殊需要功能,现在您可以将其用于您自己的任何用途

justtext
将为您获取父标记的唯一文本,其中as
internal
版本将为您获取子标记文本

希望对您有所帮助。
:)

您可以很好地将其添加到项目中的公共javascript文件中,或者对其进行自定义,并将其用作项目中的插件

代码

jQuery.fn.justtext = function() {

    return $(this).clone()
            .children()
            .remove()
            .end()
            .text();

};

jQuery.fn.justtextinner = function() {

    return $(this).clone()
            .children()
            .end()
            .text();

};

alert($('#div1').justtextinner());​
$(“”).追加($(“#div1”).clone()).html();

$(“”).附加($(“#div1”).clone()).html();

您可以创建一个简单的jQuery插件来完成这项工作,允许您在本地
.outerHTML
属性存在时使用它,或者在不存在时使用它

(function($) {
  if('outerHTML' in document.createElement('div')) {
    $.fn.outerHtml = function() {
      return this[0].outerHTML;
    }
  }
  else {
    $.fn.outerHtml = function() {
      return $("<div />").append(this.eq(0).clone()).html();
    }
  }
}(jQuery));
(函数($){
if('outerHTML'在document.createElement('div')中){
$.fn.outerHtml=函数(){
返回此[0]。outerHTML;
}
}
否则{
$.fn.outerHtml=函数(){
返回$(“”).append(this.eq(0.clone()).html();
}
}
}(jQuery));

例如,在

中,您可以创建一个简单的jQuery插件来完成这项工作,允许您在本地
.outerHTML
属性存在时使用它,或者在不存在时使用它

(function($) {
  if('outerHTML' in document.createElement('div')) {
    $.fn.outerHtml = function() {
      return this[0].outerHTML;
    }
  }
  else {
    $.fn.outerHtml = function() {
      return $("<div />").append(this.eq(0).clone()).html();
    }
  }
}(jQuery));
(函数($){
if('outerHTML'在document.createElement('div')中){
$.fn.outerHtml=函数(){
返回此[0]。outerHTML;
}
}
否则{
$.fn.outerHtml=函数(){
返回$(“”).append(this.eq(0.clone()).html();
}
}
}(jQuery));

例如

Try
$(“#div1”).parent().html()
。我认为您提供的解决方案无效。想象一下,div1的父级包含多个div,它将返回所有div,不是吗?重复这一点:查看解决方案。@loler我测试了outerHTML,它在选择器+子级中命中了特定的div,因此这是一种有针对性的方法。看这里的小提琴:@DexterHuinda我刚才也说过同样的话。我并没有说它不会有帮助,我只是提出了一个事实。试试
$(“#div1”).parent().html()
。我认为你提供的解决方案是无效的。想象一下,div1的父级包含多个div,它将返回所有div,不是吗?重复这一点:查看解决方案。@loler我测试了outerHTML,它在选择器+子级中命中了特定的div,因此这是一种有针对性的方法。看这里的小提琴:@DexterHuinda我刚才也说过同样的话。我没有说这不会有帮助,我只是陈述了一个事实。德克斯特,只要div1没有兄弟姐妹,这将是一个有效的解决方案。添加另一个div,即#div1的同级,并检查againDexter,只要#div1没有同级,这将是一个有效的解决方案。添加另一个div,即#div1的兄弟,然后再次检查