jQuery wrapAll包装内容两次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery wrapAll包装内容两次相关的知识,希望对你有一定的参考价值。

我正在使用Drupal视图,我必须使用div标记用表包装表。我在jQuery中做了类似的事情:

jQuery('table.views-table.table').wrapAll("<div class='table-responsive'></div>");

这会在第一次屏幕加载时很好地包装内容,例如:

<div class="table-responsive">
<table class="views-table cols-5 table">.....

但是我也使用Ajax对表进行排序,因此,当我对表进行排序时,单击排序选项,wrapAll()似乎将内容包装两次,如:

<div class="table-responsive">
<div class="table-responsive">
<table class="views-table cols-5 table">....

即使在使用Ajax排序之后,我还应该用div将表包装一次?

有一个类似的问题here,但我不明白他是如何解决这个问题的。

我也做了以下,但也没有用:

jQuery('elements....').wrap('elements....').unwrap('elements....').wrap('elements....'); 

但无济于事。

答案

我用简单的if语句修复了这个以检查长度,如:

if(jQuery('.table-responsive').length == 0) {
    jQuery('table.views-table.table').wrap('<div class="table-responsive"> </div>');
}

以上是关于jQuery wrapAll包装内容两次的主要内容,如果未能解决你的问题,请参考以下文章

[ jquery 文档处理 wrapAll(html|ele)) ] 此方法用于把所有匹配的元素使用指定的 HTML 元素来包裹

.slice 和 .wrapall

jQuery:将所有元素包装在一个div中但不包含在另一个div中

如何将元素集包装成div?

jQuery Prepend Open Tag附加结束标记

如何包装图像映射?