Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取最外层div元素(最高父级)的HTML_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获取最外层div元素(最高父级)的HTML

Javascript 获取最外层div元素(最高父级)的HTML,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态获取的div,其结构如下 <div id="mainWrap"> <div style="z-index: 1001; height: 407px; width: 328px; top: 150px; left: 601.5px;" id="com-TMRJDOR2KOET3X6JPV6XGU0FB7RGJ926" class="textBox contentBox"> <div styl


我有一个动态获取的
div
,其结构如下

      <div id="mainWrap">
            <div style="z-index: 1001; height: 407px; width: 328px; top: 150px; left: 601.5px;" id="com-TMRJDOR2KOET3X6JPV6XGU0FB7RGJ926" class="textBox contentBox">
               <div style="" class="editable"><p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, </p>
               </div>
            </div>

            <div style="z-index: 1002; height: 616px; width: 288px; top: 29px; left: 3.5px;" id="com-UPWTMKZ7OUTN8KG2JEK47LNPN5JO261H" class="textBox contentBox">
               <div style="" class="editable"><p>
            ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
              </div>
           </div>            
      </div>
但是我得到的内部div没有最外层的div,即
mainWrap
。我还希望mainWrap div以我得到的html格式返回

这就是我试图做的,在某种程度上奏效了:

    $.fn.getOuter = function(val){
      return $('<div class="temp">').append($('#'+val).clone()).html();
    }
    var htmlPage = $.fn.getOuter('mainWrap');
$.fn.getOuter=函数(val){
返回$('').append($('#'+val.clone()).html();
}
var htmlPage=$.fn.getOuter('mainWrap');
如果我做了
alert(htmlPage)
我会得到整个内容。但是当我尝试使用
var content=$(htmlPage.children().removeAttr('id')删除id属性时我没有得到正确的HTML。我仍然只得到了
mainWrap
中的孩子。我不确定我错在哪里。如果有任何帮助,我们将不胜感激。

谢谢您的时间。

问题在于,当您在最终内容中执行
.parent()
时,由于您已将元素克隆到内存中,因此没有父元素。相反,将其包装在另一个
div
中,并获取该文件的
html()
。我也稍微修改了逻辑,试试这个:

var $getContent = $('#mainWrap').clone();
$getContent.children().removeAttr('id');
var saveContent  = $getContent.wrap('<div></div>').parent().html();
var$getContent=$('#mainWrap').clone();
$getContent.children().removeAttr('id');
var saveContent=$getContent.wrap(“”).parent().html();

问题在于,在final content中执行
.parent()
操作时,将元素克隆到内存中时,没有父元素。相反,将其包装在另一个
div
中,并获取该文件的
html()
。我也稍微修改了逻辑,试试这个:

var $getContent = $('#mainWrap').clone();
$getContent.children().removeAttr('id');
var saveContent  = $getContent.wrap('<div></div>').parent().html();
var$getContent=$('#mainWrap').clone();
$getContent.children().removeAttr('id');
var saveContent=$getContent.wrap(“”).parent().html();

下面是一个简单的例子,可以使用():


一些文本
更多的文字
var getContent=$('').append($(“#id1”).clone();
getContent.find(“*”).removeAttr(“id”);
$(“#ta”).val(getContent.html());

您可以动态地将克隆的元素附加到
div
。我使用
find(“*”)
,因为
children()
只获取
getContent
的直接后代。我假设您希望删除所有
id
属性,而不管它们有多深。

下面是一个简单的示例,可以使用():


一些文本
更多的文字
var getContent=$('').append($(“#id1”).clone();
getContent.find(“*”).removeAttr(“id”);
$(“#ta”).val(getContent.html());

您可以动态地将克隆的元素附加到
div
。我使用
find(“*”)
,因为
children()
只获取
getContent
的直接后代。我假设你想删除所有
id
属性,不管它们有多深。

如果你没有在其中引用任何PHP,请不要在PHP上加标签。最终内容值是什么?你试图提醒它吗?@Gordon对不起,先生!!我以前的帖子很少有PHP,所以它来得很匆忙!谢谢您的编辑!:)当你没有引用任何PHP时,请不要在问题PHP上加上标签。最终内容值是多少?你试图提醒它吗?@Gordon对不起,先生!!我以前的帖子很少有PHP,所以它来得很匆忙!谢谢您的编辑!:)我必须添加它才能得到预期的结果
var saveContent=$getContent.wrap(“”).parent().html()我还需要最外层的家长。**希望我是对的**。请回复,以便我可以编辑答案并接受!是的,你是对的,很抱歉我错过了
wrap()
之后的
parent()
。我忘记了选择器的上下文没有转到包装元素。我必须添加它以获得预期的结果
var saveContent=$getContent.wrap(“”).parent().html()我还需要最外层的家长。**希望我是对的**。请回复,以便我可以编辑答案并接受!是的,你是对的,很抱歉我错过了
wrap()
之后的
parent()
。我忘了选择器的上下文不会指向包装元素。谢谢!!将尝试一下!!:)非常感谢。将尝试一下!!:)
<div id="id1">
    <span>some text</span>
    <div id="someid">some more text</div>
</div>

<textarea id="ta"></textarea>

var getContent = $('<div>').append($("#id1").clone());
getContent.find("*").removeAttr("id");
$("#ta").val( getContent.html() );