У меня есть HTML struture, я не могу получить значение переключателя, когда я выбираю свой селектор, как описано в моем коде JQuery ниже.
<div class="option-radio-box">
<input id="pixel" class="css-checkbox" type="radio" value="pixel" name="type">
<label class="css-label" for="radio1">
<img width="25" height="20" alt="" src="images/opt-ico1.png">
Pixel by
<span>Pixel</span>
</label>
</div>
<div class="option-radio-box">
<input id="pair" class="css-checkbox" type="radio" checked="checked" value="pair" name="type">
<label class="css-label" for="radio2">
<img width="25" height="20" alt="" src="images/opt-ico2.png">
Duplicate
<span>Search</span>
</label>
</div>
И после кода JQuery,
$('.css-label').on('click', function() {
alert(jQuery(this).closest('input:radio[name=type]').id);});
.id
не является родительским, но является родным братом, а объект jQuery не имеет свойства .id
$('.css-label').on('click', function() {
alert( $(this).siblings('input:radio[name=type]').prop('id') );
});
closest()
ищет предков элемента, тогда как элемент input
является родным в вашем HTML. Вы можете сделать что-то вроде этого:
$('.css-label').on('click', function() {
alert($(this).siblings('input[name="type"]:checked').val());
});
Попробуйте этот JSFIDDLE
$('.css-label').on('click', function() {
parentElement = jQuery(this).parents('.option-radio-box');
alert($("input[type='radio']",parentElement).attr("id"));
});
jQuery(this).closest('input:radio[name=type]').attr('id'));
я уже пробовал это, я получаю пустое оповещение