2014-09-06 4 views
0

Я хотел бы обернуть каждую из двух меток в div. Эти метки являются родителями кнопки входного типа радио, и я хочу настроить их как родителей входного типа радио, чтобы избежать обертывания любые другие существующие метки на моем веб-сайте (вероятно, есть лучший способ настроить эти метки). Вот JSFiddle http://jsfiddle.net/Lqu8rcLb/2/jQuery wrap each two labels в div

<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.

+1

''

"" Двойные кавычки, используемые в строке в двойных кавычках, создавали бы проблемы. Вы хотите сделать внутренние кавычки одиночными или вывести их с помощью '\' – GillesC

+0

Спасибо за указание на это. Но, как я уже сказал, он обертывает каждую метку, а не обе. – Eddi

ответ

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>') 
}); 

FIDDLE

Другой способ сделать это, будет be

$('input[type="radio"]').parent().each(function() { 
    if (! $(this).closest('.wrapped-labels').length) 
     $(this).add($(this).siblings('label')).wrapAll('<div class="wrapped-labels"></div>'); 
}); 
+0

Быстро и полезно. Большое спасибо. Любые советы о том, как я должен включать флажок ввода типа? Или я должен просто повторить этот код и отредактировать часть с помощью type = "radio" с типом = "checkbox"? – Eddi

+0

Мне нравятся оба из них, но я думаю, что я пойду с первым :). – Eddi

+0

Вам действительно нужно проверить тип, и есть ли какой-либо способ его отменить, как в исключении текстовых входов -> '[type! =" Text "]' и т. Д. В противном случае второй, вероятно, проще всего расширить до checkboxes -> ** http: //jsfiddle.net/Lqu8rcLb/4/** – adeneo

Смежные вопросы