Html jQuery:.wrapAll环绕多个重复元素
我有一种感觉有点凌乱的形式,因为每一行都没有真正用div或ul/li来包装,这使得造型很困难。所以我想用jQuery来包装它,因为我不能直接编辑HTML 现在看起来有点像这样: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">
<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'))
,请再试一次,很高兴我能帮上忙!!!