It's easier if you use either a common class or some dataset element. You can just just ask the browser to give you all of them using document.querySelectorAll. You can then use any CSS selector
function checkOneOfGroup(selector, checkedId) {
document.querySelectorAll(selector).forEach((element) => {
element.checked = element.id === checkedId;
});
}
const selector = "input[type=checkbox].group1";
function handleChange(element) {
checkOneOfGroup(selector, element.target.id);
}
document.querySelectorAll(selector).forEach((element) => {
element.addEventListener('change', handleChange);
});
checkOneOfGroup(selector, 'apple'); // start with apple checked
<input type="checkbox" class="group1" id="orange"><label for="orange">orange</label>
<input type="checkbox" class="group1" id="apple"><label for="apple">apple</label>
<input type="checkbox" class="group1" id="banana"><label for="banana">banana</label>
<input type="checkbox" class="group1" id="pear"><label for="pear">pear</label>
<input type="checkbox" class="group1" id="peach"><label for="peach">peach</label>
using a dataset element instead
function checkOneOfGroup(selector, checkedId) {
document.querySelectorAll(selector).forEach((element) => {
element.checked = element.id === checkedId;
});
}
const selector = "input[type=checkbox][data-foo=group1]";
function handleChange(element) {
checkOneOfGroup(selector, element.target.id);
}
document.querySelectorAll(selector).forEach((element) => {
element.addEventListener('change', handleChange);
});
checkOneOfGroup(selector, 'apple'); // start with apple checked
<input type="checkbox" data-foo="group1" id="orange"><label for="orange">orange</label>
<input type="checkbox" data-foo="group1" id="apple"><label for="apple">apple</label>
<input type="checkbox" data-foo="group1" id="banana"><label for="banana">banana</label>
<input type="checkbox" data-foo="group1" id="pear"><label for="pear">pear</label>
<input type="checkbox" data-foo="group1" id="peach"><label for="peach">peach</label>
You could also just surround them in some other element and use that as a selctor
function checkOneOfGroup(selector, checkedId) {
document.querySelectorAll(selector).forEach((element) => {
element.checked = element.id === checkedId;
});
}
const selector = "#fruits input[type=checkbox]";
function handleChange(element) {
checkOneOfGroup(selector, element.target.id);
}
document.querySelectorAll(selector).forEach((element) => {
element.addEventListener('change', handleChange);
});
checkOneOfGroup(selector, 'apple'); // start with apple checked
<div id="fruits">
<input type="checkbox" id="orange"><label for="orange">orange</label>
<input type="checkbox" id="apple"><label for="apple">apple</label>
<input type="checkbox" id="banana"><label for="banana">banana</label>
<input type="checkbox" id="pear"><label for="pear">pear</label>
<input type="checkbox" id="peach"><label for="peach">peach</label>
</div>