我正在尝试将radio
输入及其label
包装在一个div
中,但不知何故它不包含输入。我的代码是:
HTML是:
<div class="payment_processor-section">
<input id="input_0" class="form-radio" type="radio" checked="checked" name="payment_processor" value="1">
<label for="input_0">Credit Card</label>
<input id="input_1" class="form-radio" type="radio" name="payment_processor" value="0">
<label for="input_1" style="">I will send payment by check</label>
</div>
我正在尝试的Jquery是:
$('.payment_processor-section input').map(function(index){
$(this, $("label[for='"+this.id+"']") ).wrapAll('<div class="abc">');
});
请帮忙。
答案 0 :(得分:13)
试试这个:
$('.payment_processor-section input').map(function(index){
$(this).next().andSelf().wrapAll('<div class="abc">');
});
答案 1 :(得分:8)
$('.payment_processor-section input').map(function(index){
$(this).add($("label[for='"+this.id+"']")).wrapAll('<div class="abc">');
});
答案 2 :(得分:0)
由于javascript和jQuery有各种方法可以实现相同的结果,你也可以使用slice和a for in循环
var collection=$('.payment_processor-section *')
for(var i = 0; i < collection.length; i+=2) {
collection.slice(i, i+2).wrapAll("<div class='group'></div>");
}
答案 3 :(得分:0)
为jQuery v3.0更新@Alex Char解决方案
$('.payment_processor-section input').map(function(index){
$(this).next().addBack().wrapAll('<div class="abc">');
});
.andSelf()
在v1.8中已被弃用,而在v3.0中已被删除,您可以改用.addBack()
。