我想在div中包装每两个标签。这些标签是输入无线电类型按钮的父母,我想像输入无线电类型的父母那样定位它们,以避免在我的网站上包装任何其他现有标签(可能有更好的方法来定位这些标签)。这是JSFiddle http://jsfiddle.net/Lqu8rcLb/2/
<form id="myform" method="post" action="">
<fieldset>
<dl>
<dd>
<label>
<input type="radio" name="radio1" value="radio1">
</label>
<label>
<input type="radio" name="radio1" value="radio2">
</label>
</dd>
</dl>
<br></br>
<dd>
<label>
<input type="radio" name="radio2" value="radio3">
</label>
<label>
<input type="radio" name="radio2" value="radio4">
</label>
</dd>
</dl>
</fieldset>
</form>
jQuery的:
$('input:radio').parent().each(function () {
$(this).wrapAll("<div class="wrapped-labels"></div>");
});
但jQuery代码不起作用,我尝试了很多其他的可能性,最接近的是将每个标签包装在div中,但这不是我想要的,因为我想在一个div中使用两个标签。
答案 0 :(得分:0)
您可能只希望获得其中一个标签,然后将兄弟标签添加到集合中,然后包装在div中
$('#myform label:has(input[type="radio"]) + label:has(input[type="radio"])').each(function() {
$(this).add($(this).siblings('label')).wrapAll('<div class="wrapped-labels"></div>')
});
另一种方法是
$('input[type="radio"]').parent().each(function() {
if ( ! $(this).closest('.wrapped-labels').length )
$(this).add($(this).siblings('label')).wrapAll('<div class="wrapped-labels"></div>');
});