Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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/2/jquery/81.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
Html jQuery:.wrapAll环绕多个重复元素_Html_Jquery_Wrapper_Repeat - Fatal编程技术网

Html jQuery:.wrapAll环绕多个重复元素

Html jQuery:.wrapAll环绕多个重复元素,html,jquery,wrapper,repeat,Html,Jquery,Wrapper,Repeat,我有一种感觉有点凌乱的形式,因为每一行都没有真正用div或ul/li来包装,这使得造型很困难。所以我想用jQuery来包装它,因为我不能直接编辑HTML 现在看起来有点像这样: <p class="A">Blabla</p> <input class="B"> <p class="A">Blabla</p> <input class="B">

我有一种感觉有点凌乱的形式,因为每一行都没有真正用div或ul/li来包装,这使得造型很困难。所以我想用jQuery来包装它,因为我不能直接编辑HTML

现在看起来有点像这样:

<p class="A">Blabla</p>
<input class="B">

<p class="A">Blabla</p>
<input class="B">

<p class="A">Blabla</p>
<input class="B">

<p class="A">Blabla</p>
<input class="B">

Blabla

诸如此类

诸如此类

诸如此类

我试图使用以下代码:

jQuery(document).ready(function( $ ){
    $( ".A, .B" ).wrapAll("<div class='C'></div>");
});
jQuery(文档).ready(函数($){
美元(“.A.B”).wrapAll(“”);
});
当然,这会将一个div放在所有As和Bs周围作为一个“块”。 但我想要的是在每一行都有这个div

因此,我基本上希望:

<div class="C">
  <p class="A">Blabla</p>
  <input class="B">
</div>

<div class="C">
  <p class="A">Blabla</p>
  <input class="B">
</div>

<div class="C">
  <p class="A">Blabla</p>
  <input class="B">
</div>

<div class="C">
  <p class="A">Blabla</p>
  <input class="B">
</div>

诸如此类

诸如此类

诸如此类

诸如此类

你能帮忙吗?(:

注意:对我来说,它不必是div。ul/li也可以,但可能需要更多的工作?

使用
each()

$(.A+.B”)。每个(函数(){
$(this.prev().addBack().wrapAll(“”);
})

诸如此类

诸如此类

诸如此类

诸如此类

使用
each()

$(.A+.B”)。每个(函数(){
$(this.prev().addBack().wrapAll(“”);
})

诸如此类

诸如此类

诸如此类

诸如此类


您可以使用每个函数遍历每个选定的
A
类,然后使用add函数在
B
类中创建一个新的jQuery对象,方法是在下一个函数的帮助下立即获得后面的同级,然后使用wrapAll函数包装它们

$(".A").each(function(){
    $(this).add($(this).next(".B")).wrapAll("<div class='C'></div>");
})

这一个也将解决您的上述问题

您可以使用每个函数遍历每个选定的
A
类,然后使用add函数通过
B
类创建一个新的jQuery对象,方法是在下一个函数的帮助下立即获得后面的同级,然后使用wrapAll函数包装它们

$(".A").each(function(){
    $(this).add($(this).next(".B")).wrapAll("<div class='C'></div>");
})

这将解决你的上述问题,

谢谢,它几乎起作用了!刚刚发现了另一个问题:有些行之间有一个关系,这使事情变得有点混乱。我可以在中间添加一些变量/占位符吗?比如:$(“a + +之间的任何东西,如果有某物+B”)用它来选择介于两者之间的所有东西,它几乎都是有效的!只是发现了另一个问题:有些行之间有一个关系,这使事情变得有点混乱。我可以在中间添加一些变量/占位符吗??用于选择中间的所有内容嗯,这一个似乎只包装p元素/.A,但不包括。B:(等等,更准确地说:如果中间有东西,那么它只包装。ANo@Manisch,请尝试让我知道,它将同时包装。A和.B,第二个将在两个.A之间添加所有元素(仅包括1.A)在Wrapper中,最后一个看起来不错,但我认为有一个小错误。这一个现在似乎可以工作:'$(“.a”).each(function(){$(This).nextUntil(“.a”).addBack().add($(This).next('.B')).wrapAll(“'))-所以第一个.B应该是.a…?无论如何,非常感谢您的帮助!@Manisch您不需要
add($(This).next('.B'))
,请再试一次,很高兴我能帮上忙!!!嗯,这一个似乎只包装p元素/.A,但不包括。B:(等等,更准确地说:如果中间有东西,那么它只包装。ANo@Manisch,请试着让我知道,它会同时包装。A和。B,第二个将在两个元素之间添加所有元素。A最后一个看起来不错,但我认为有一个小错误。这个现在似乎可以工作了:'$(“.A”).each(function(){$(This).nextUntil(“.A”).addBack().add($(This).next('.B')).wrappall(“'))-所以第一个.B应该是.A…?无论如何,非常感谢你的帮助!@Manisch你不需要
add($(This).next)('.B'))
,请再试一次,很高兴我能帮上忙!!!