Как получить идентификатор элемента с помощью функции jQuery Closest ()

0

У меня есть 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);});
  • 0
    @ A.Wolff: jQuery(this).closest('input:radio[name=type]').attr('id')); я уже пробовал это, я получаю пустое оповещение
  • 1
    Да, потому что он не является предком этого элемента, посмотрите ответ @ adeneo и оповестите его;)
Теги:
radio-button

3 ответа

2
Лучший ответ

.id не является родительским, но является родным братом, а объект jQuery не имеет свойства .id

$('.css-label').on('click', function() {
      alert( $(this).siblings('input:radio[name=type]').prop('id') );
});

FIDDLE

  • 0
    Спасибо за то, что я хотел (10-минутный таймер, чтобы ждать, чтобы принять ответ), кстати, я не разместил здесь родительский, так что ближайший поиск родительских элементов?
1

closest() ищет предков элемента, тогда как элемент input является родным в вашем HTML. Вы можете сделать что-то вроде этого:

$('.css-label').on('click', function() {
  alert($(this).siblings('input[name="type"]:checked').val());
});
0

Попробуйте этот JSFIDDLE

$('.css-label').on('click', function() {
    parentElement = jQuery(this).parents('.option-radio-box');
alert($("input[type='radio']",parentElement).attr("id"));  
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню