Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 在没有自动关闭标记的元素前后插入内容_Javascript_Jquery_Insert_Tags - Fatal编程技术网

Javascript 在没有自动关闭标记的元素前后插入内容

Javascript 在没有自动关闭标记的元素前后插入内容,javascript,jquery,insert,tags,Javascript,Jquery,Insert,Tags,假设我有以下几点: <div id="content">content</div> 内容 我想在它前面插入一些内容**(注意未关闭的div)**: $(“#内容”)。之前(“内容前内容前内容”); 在**(请注意,我现在正在结束div)**之后还有一些: $(“#内容”)。之后(“post content post content”); 我期望的输出是: <div>pre-pre content</div> <div>

假设我有以下几点:

<div id="content">content</div>
内容
我想在它前面插入一些内容**(注意未关闭的div)**:

$(“#内容”)。之前(“内容前内容前内容”);
在**(请注意,我现在正在结束div)**之后还有一些:

$(“#内容”)。之后(“post content post content”);
我期望的输出是:

<div>pre-pre content</div>
<div>
    pre-content <div id="content">content</div> post-content
</div>
<div>post-post content</div>
pre内容
前内容后内容
帖子内容
相反,我得到的是:

<div>pre-pre content</div>
<div>pre-content</div>
<div id="content">content</div>
<div>post-content</div>
<div>post-post content</div>
pre内容
预含量
内容
帖子内容
帖子内容
因为jQuery会自动“纠正”未关闭的标记

有没有一种方法可以使用.wrap()在元素前后添加不同的内容,而不自动关闭标记

注意,由于不相关的限制,我无法执行以下操作:

$("#content").html("<div>Content before " + $("#content).html() + " Content after</div>")
$(“#content”).html(“内容在“+$(“#content.html()+”内容在“+$”之前”)

不能插入部分或未关闭的标记。在DOM中插入元素只能插入整个元素

你的选择是:

  • 提取要包装在新元素中的元素,插入新容器对象,然后将原始元素放入容器中

  • 直接操作父级的HTML(通常不推荐)

  • 使用jQuery的
    .wrap()
    方法,该方法为您执行#1中的选项。有关jQuery的
    .wrap()
    的更多信息,请参阅


  • 好吧,这是有道理的,我不知道jQuery。我遇到的更具体的问题是,我的内容是一条嵌入的tweet,当我试图提取它并重新插入它时,它会变成空白:我想我实际上应该用这些细节打开另一个问题,但是如果你对修复有任何想法,请告诉我,作为记录,tweet-specific问题这是:
    <div>pre-pre content</div>
    <div>pre-content</div>
    <div id="content">content</div>
    <div>post-content</div>
    <div>post-post content</div>
    
    $("#content").html("<div>Content before " + $("#content).html() + " Content after</div>")