Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 如何包装<;的上一个和下一个同级文本;br>;使用jquery使用div?_Javascript_Jquery_Html_Nextsibling - Fatal编程技术网

Javascript 如何包装<;的上一个和下一个同级文本;br>;使用jquery使用div?

Javascript 如何包装<;的上一个和下一个同级文本;br>;使用jquery使用div?,javascript,jquery,html,nextsibling,Javascript,Jquery,Html,Nextsibling,以下HTML结构已给定,无法更改: ... 第一个文本行第二个文本行(可选) 第一个文本行第二个文本行(可选)。。。 您需要在中迭代br元素。默认值并在循环中添加新标记。您可以使用和属性获取元素的上一个/下一个文本同级 $(".default > br").each(function(){ // Store previous/next sibling of br in variable then remove it. var prev = $(this.previous

以下HTML结构已给定,无法更改:


...
第一个文本行
第二个文本行(可选) 第一个文本行
第二个文本行(可选)。。。
您需要在
中迭代
br
元素。默认值
并在循环中添加新标记。您可以使用和属性获取元素的上一个/下一个文本同级

$(".default > br").each(function(){
    // Store previous/next sibling of br in variable then remove it.
    var prev = $(this.previousSibling).remove()[0].textContent;
    var next = $(this.nextSibling).remove()[0].textContent;
    // Insert new tag before br.
    $(this).before("<div class='desc'>" + prev + "<br>" + next + "</div>");  
}).remove(); // Remove br after loop

第一行文本
第二个文本行(可选) 第一行文本
第二个文本行(可选) ...
您可以将id添加到“br”,并按id列表进行包装

<div id="id1">First</div><br id="id2">
<div id="id2">Second</div><br>
<div id="id3">First</div><br id="id4">

<script>
$("#id1,#id2,#id3,#id4").wrapAll("<div class='wraped'></div>")
</script>
First
第二个
首先
$(“#id1,#id2,#id3,#id4”).wrapAll(“”)
我尝试了nextUntil,但只包装了
br
标记:
$(this.nextSibling).nextUntil('img').wrapAll('')
.content@mplungjan:抱歉,无法使用该代码…您好,太好了,谢谢!它适用于以

分隔的两行,但如初始问题中所述:也可以有一行(当然没有

)和三行。然后这就不起作用了。