Выберите переключатель с определенным значением в ряду групп в jQuery

#jquery

#jquery

Вопрос:

У меня есть ряд сгенерированных групп переключателей. Я хочу перебрать группы и выполнить attr(‘checked’, true) для радио со значением, определяемым substr() хэша (пока хранится в текстовом поле с id =»hash»).

 var hashPosition = 0;

$("section").each(function(){
  var hashCode = $("#hash").val().substr(hashPosition, hashPosition   1);
  if(hashCode > 5){ hashCode = 0; }
  $("input[value='"  hashCode  "']").attr('checked', true);
  hashPosition  ;
});
 

Хэш — это просто последовательность чисел от 1 до 5. (например. «012345123450»)
HTML выглядит следующим образом:

   <li>
    <section>All snoots must be booped.</section>
    <section>
      <input type="radio" name="c1i1a" id="c1i1-5" title="Strongly Agree" value="5" />
      <input type="radio" name="c1i1a" id="c1i1-4" title="Agree" value="4" />
      <input type="radio" name="c1i1a" id="c1i1-3" title="Neutral" value="3" />
      <input type="radio" name="c1i1a" id="c1i1-2" title="Disagree" value="2" />
      <input type="radio" name="c1i1a" id="c1i1-1" title="Strongly Disagree" value="1" />
      <input type="radio" name="c1i1a" id="c1i1-0" title="No Opinion" value="0" />
    </section>
  </li> ... and so on
 

Этот код не работает, потому что он устанавливает значение каждого ввода [value= n] в документе. Мне нужно указать входные данные $этого раздела. Но я не могу понять, как это сделать.

Ответ №1:

Чтобы задать ввод только внутри текущего повторяющегося раздела, обратитесь this each к обратному вызову (чтобы перейти к разделу) и используйте .find для перехода к соответствующему входу, который является потомком раздела:

 $(this).find("input[value='"   hashCode   "']").attr('checked', true);