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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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在多个HTML元素中包装一组元素_Jquery_Html - Fatal编程技术网

使用JQuery在多个HTML元素中包装一组元素

使用JQuery在多个HTML元素中包装一组元素,jquery,html,Jquery,Html,我需要将HTML添加到页面中,但我无法直接控制HTML本身,因此我尝试使用JQuery 这是现有的、生成的HTML(简化): 注意,出于样式的原因,我需要添加3个包含标记和(以及相关的结束标记) 我希望使用.first().before和.last().before和.last().before来添加HTML,但JQuery添加了结束标记。我也尝试过使用JQuery的各种.wrapAll,.before,.append,但由于我不理解的原因,我一直运气不佳 stackoverflow上的其他解决

我需要将HTML添加到页面中,但我无法直接控制HTML本身,因此我尝试使用JQuery

这是现有的、生成的HTML(简化):

注意,出于样式的原因,我需要添加3个包含
标记和
(以及相关的结束标记)

我希望使用
.first().before
.last().before
.last().before
来添加HTML,但JQuery添加了结束标记。我也尝试过使用JQuery的各种
.wrapAll
.before
.append
,但由于我不理解的原因,我一直运气不佳

stackoverflow上的其他解决方案似乎都是将元素组包装在一个
中,但我在尝试添加其他
时遇到了麻烦


有人对如何实现这一目标有什么建议吗

如果不尝试使用包装方法,这可能会更容易

我只需一次性为包装器创建HTML结构

var $wrapper = $('<div><div><h2>Testimonials</h2><div></div></div></div>');
然后简单地抓取所有
.commential
元素,并将它们附加到我们刚刚创建的新结构的最内层div元素中

$wrapper.find('div div').append($('.testimonial'));

在本例中,检查生成的DOM,它应该是您想要的:

我为
div
定义了一个
id
,以便以后很容易找到它

希望这有助于:

$(文档).ready(函数(){
美元(“.estimential”).wrapAll(“”);
$(“证明”)。插入之前(“证明”);
});
正文{
背景:gainsboro;
}
#证明{
背景:白色;
}

内容
内容
内容
内容
内容
内容
内容

如果有多个鉴定案例需要分组,我会提出这个建议

//查找课程前面的推荐信
$('.currency+.commential')。每个(函数(){
var$FirstEstimational=$(本);
//获得第一份推荐信和所有紧接着的推荐信
var$group=$firstEstimational.add($firstEstimational.nextUntil(':not(.esticimational));
//创建一个具有组应该去哪里的目标id的替换
变量$replacement=$(“证明”);
//把替代者放在第一份证明的地方
$FIRSTDESTIONAL.replaceWith($REPLACENT);
//将组中的所有推荐信放入替换中,然后删除临时id
$replacement.find('#testarget').append($group.removeAttr('id');
});

内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容
内容

内容
可能重复感谢,一个很好的简单解决方案!
var $wrapper = $('<div><div><h2>Testimonials</h2><div></div></div></div>');
$wrapper.insertBefore('.testimonial:first');
$wrapper.find('div div').append($('.testimonial'));