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
将为您获取父标记的唯一文本,其中asinternal
版本将为您获取子标记文本
希望对您有所帮助。:)
您可以很好地将其添加到项目中的公共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
将为您获取父标记的唯一文本,其中asinternal
版本将为您获取子标记文本
希望对您有所帮助。:)
您可以很好地将其添加到项目中的公共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的兄弟,然后再次检查