如图,我想把红色框框中的那一大组元素都放入一个div里,用wrap不行,只能给每个div class=‘item’添加单个div,而不是总的放在一个div里,或者有没有办法把这一组元素的父元素即<span id='DataList1'>这个元素改成是div呢???
jQ里wrap系的接口一共有四个,分别是wrap、wrapAll和wrapInner,此外还有个unwrap。他们的区别在于wrap负责给每个匹配的元素打包,wrapAll负责给所有匹配的元素打包,wrapInner给匹配元素里边的内容打包,unwrap拆包。不过现在鉴于你外边已经有个span了,我觉得可以试试用replaceWith把它直接替换掉就好了。
$('#DataList1').replaceWith('<div>' + $(this).contents() + '</div>');
$('#DataList1').wrapInner('<div class="DataList1"></div>').children().unwrap();
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>');