怎么给一组子元素添加一个div'父元素?

clipboard.png

如图,我想把红色框框中的那一大组元素都放入一个div里,用wrap不行,只能给每个div class=‘item’添加单个div,而不是总的放在一个div里,或者有没有办法把这一组元素的父元素即<span id='DataList1'>这个元素改成是div呢???

回复
阅读 4.9k
4 个回答

jQ里wrap系的接口一共有四个,分别是wrap、wrapAll和wrapInner,此外还有个unwrap。他们的区别在于wrap负责给每个匹配的元素打包,wrapAll负责给所有匹配的元素打包,wrapInner给匹配元素里边的内容打包,unwrap拆包。不过现在鉴于你外边已经有个span了,我觉得可以试试用replaceWith把它直接替换掉就好了。

$('#DataList1').replaceWith('<div>' + $(this).contents() + '</div>');
document.body.innerHTML = document.body.innerHTML.replace(/<([\/]?)(span)((:?\s*)(:?[^>]*)(:?\s*))>/g, '<$1div$3>'); 

已经亲测 没有任何问题

为啥非要div,span弄成block不一样?
要做也是可以的,如下:

let aHtml=$('#DataList1').html();
$('#DataList1').html('<div>'+aHtml+'</div>');
$('#DataList1').wrapInner('<div class="DataList1"></div>').children().unwrap();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏