При нажатии DIV установите несколько флажков (не с тем же именем)

Моя радиокнопка называется динамически. Как установить все флажки при нажатии на div. Div и каждое радио имеют уникальный идентификатор. Div на самом деле представляет собой карты. Я хочу, нажав на карточку, как выбрать все перечисленные радио в div Как динамически получить все дочерние узлы из javascript, но проверить все радио

<div id=<?= ($counter-1) ?> class = "card categoryCard" style = "width: 18rem;">
  <div class = "card-body">
    <h5 class = "card-title"><?= $rows[$counter-1]["TICKETDESCRIPTION"]?></h5>
    <input type = "radio" id=<?='TICKETDESCRIPTION'.($counter-1) ?> name = "TICKETDESCRIPTION" >
    <p class = "card-text"><label>RM <?= $rows[$counter-1]["TICKETPRICE"]?></label></p>
    <input type = "radio" id=<?='TICKETPRICE'.($counter-1) ?> name = "TICKETPRICE" >
  </div>
</div>

Ниже мой код javascript

$('.categoryCard').click(function(){
    var id = $(this).attr('id');
    var radiobtn = document.getElementById("TICKETDESCRIPTION"+id);
    radiobtn.checked = true;
    alert(id);
});

почему вы путаете jQuery с javascript? это не лучшая практика. var radiobtn = document.getElementById("TICKETDESCRIPTION"+id); его можно заменить на var radiobtn = $("#TICKETDESCRIPTION"+id);

Akhil Aravind 28.12.2018 05:20

вы можете выбрать все радиокнопки с помощью 'input[type=radio]'

Akhil Aravind 28.12.2018 05:22

@AkhilAravind Да, но скажем, у меня есть 2 переключателя, он не выбирает все переключатели, когда я нажимаю на div

KIRPAL SINGH 28.12.2018 05:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
246
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
// assuming jquery

$('.categoryCard').click(function(e){
   $('input[type = "radio"]', this).each( function( i) {
     $(this).prop('checked', true);

   });

});

Вы можете объяснить, что такое функция (i, el)?

KIRPAL SINGH 28.12.2018 05:33

Должен ли я для проверки использовать «атрибут» вместо «свойство»?

KIRPAL SINGH 28.12.2018 05:35

@MrJ Нет, он прав. Это потому, что я зацикливаю, и мне нужно сделать карты таким образом, чтобы у каждой карты был одинаковый переключатель, но разное значение.

KIRPAL SINGH 28.12.2018 05:37

на самом деле это было немного неправильно, см. обновление - но нет - prop - это правильный метод jquery, см. здесь: api.jquery.com/each

David Bray 28.12.2018 05:38

Можно объяснить, почему в $ ('input [type = "radio"]', this) есть "this"

KIRPAL SINGH 28.12.2018 06:02

в $ ('input [type = "radio"]', this) это ограничивает область поиска элементом .categoryCard. input [type = "radio"] - возвращает все переключатели в области видимости

David Bray 28.12.2018 08:05

Есть много способов реализовать то же самое. Я описал два способа.

You must not use the ID as duplicate.

ID is identifier for the elements, so it must not be duplicate.

$('.categoryCard').click(function(e){
   $('input[type = "radio"]', this).each( function( index, element) {
     $(element).prop('checked', true);

   });

});

$('.categoryCard').click(function(e){
  var id = $(this).attr('id');
   $('input[data-details = "'+ id +'"]', this).each( function( index, element) {
     $(element).prop('checked', true);

   });

});
.categoryCard{
border: 1px solid #d4d4d4;
padding: 5px;

}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id = "1" class = "card categoryCard" style = "width: 18rem;">
  <div class = "card-body">
    <h5 class = "card-title">Desc</h5>
    <input type = "radio" name = "TICKETDESCRIPTION">
    <p class = "card-text">Price</p>
    <input type = "radio" name = "TICKETPRICE" >
  </div>
</div>

<!-- 2nd Method there must be no duplicate ID  -->

<div id = "2" class = "card categoryCard" style = "width: 18rem;">
  <div class = "card-body">
    <h5 class = "card-title">Desc</h5>
    <input type = "radio" name = "TICKETDESCRIPTION" data-details  = "1">
    <p class = "card-text">Price</p>
    <input type = "radio" name = "TICKETPRICE" data-details  = "1" >
  </div>
</div>

это поможет многим людям

KIRPAL SINGH 28.12.2018 05:43

Это также можно решить так: -

$('.categoryCard').click(function(){
   $(this).find('input[type = "radio"]').each(function() {
     $(this).prop('checked', true);
   });
});

Другие вопросы по теме