Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Jquery 使用多个容器依次插入元素_Jquery - Fatal编程技术网

Jquery 使用多个容器依次插入元素

Jquery 使用多个容器依次插入元素,jquery,Jquery,我有以下HTML: <div class="div one"> <div class="text">One</div> <svg>object</svg> </div> <div class="div two"> <div class="text">two</div> <svg>object</svg> </div> <div class=

我有以下HTML:

<div class="div one">
 <div class="text">One</div>
 <svg>object</svg>
</div>
<div class="div two">
 <div class="text">two</div>
 <svg>object</svg>
</div>
<div class="div three">
 <div class="text">three</div>
 <svg>object</svg>
</div>
但结果是:


我假设每个元素都选择其div中的每个元素,而不是所有元素,并在目标元素之后重复它们。

您可以这样做。append函数始终将元素放置在包装元素的最后一个位置:

$('.three').append($(this));

你可以这样做。append函数始终将元素放置在包装元素的最后一个位置:

$('.three').append($(this));

您需要循环遍历每个.div,如下所示:

$('.div').each(function() {
  $(this).find('.text').detach().insertAfter($(this).find('svg'));
});
并将其从原始位置分离,然后插入该特定div的svg之后。因此,您需要找到带有$this的svg


您需要循环遍历每个.div,如下所示:

$('.div').each(function() {
  $(this).find('.text').detach().insertAfter($(this).find('svg'));
});
并将其从原始位置分离,然后插入该特定div的svg之后。因此,您需要找到带有$this的svg

我想你想要

$'.div.text'.eachfunction{ $this.insertAfter$this.next; //或者$this.next.afterthis; }; .文本{ 字体:粗体21px/2em Arial } svg{ 背景:bbb; 宽度:100px; 高度:100px; } 一 对象 二 对象 三 对象 我想你想要

$'.div.text'.eachfunction{ $this.insertAfter$this.next; //或者$this.next.afterthis; }; .文本{ 字体:粗体21px/2em Arial } svg{ 背景:bbb; 宽度:100px; 高度:100px; } 一 对象 二 对象 三 对象
您需要找到当前.div.text元素的同级svg元素,并在其后插入。试试这个:

$('.div .text').each(function() {
  $(this).siblings('svg').after(this);
});

您需要找到当前.div.text元素的同级svg元素,并在其后插入。试试这个:

$('.div .text').each(function() {
  $(this).siblings('svg').after(this);
});

如果我是对的,如果要删除.text元素并将其放在svg元素之后,请使用以下命令:

$('.div  .text').each(function() {
 // get the closest parent and find its child(svg)
 var target = $(this).closest('.div').find('svg');
 // insert after svg(.text)
 $(this).insertAfter(target);
});

更新了

如果我是对的,如果要删除.text元素并将其放在svg元素之后,请使用以下命令:

$('.div  .text').each(function() {
 // get the closest parent and find its child(svg)
 var target = $(this).closest('.div').find('svg');
 // insert after svg(.text)
 $(this).insertAfter(target);
});

更新

谢谢,这是最简单的,我就是这样更新的:谢谢,这是最简单的,我就是这样更新的:是的,append是更好的解决方案。Thanks@Kareem很高兴我能帮忙。好的,所以大家都知道它是正确的,投票给它并标记为solion:是的,append是更好的解决方案。Thanks@Kareem很高兴我能帮忙。好的,大家都知道这是正确的,投票表决并标记为Solion: