当前位置:首页 > JavaScript

js实现单选

2026-02-01 01:35:39JavaScript

实现单选功能的JavaScript方法

使用HTML和JavaScript实现单选功能可以通过多种方式完成,以下是几种常见的方法:

HTML结构示例

<div class="radio-group">
  <input type="radio" name="option" id="option1" value="1">
  <label for="option1">选项1</label>

  <input type="radio" name="option" id="option2" value="2">
  <label for="option2">选项2</label>

  <input type="radio" name="option" id="option3" value="3">
  <label for="option3">选项3</label>
</div>

纯JavaScript实现

监听change事件

const radios = document.querySelectorAll('input[name="option"]');
radios.forEach(radio => {
  radio.addEventListener('change', function() {
    if(this.checked) {
      console.log('选中的值:', this.value);
    }
  });
});

获取选中值

function getSelectedValue() {
  const selected = document.querySelector('input[name="option"]:checked');
  return selected ? selected.value : null;
}

使用事件委托优化

对于大量单选按钮,可以使用事件委托:

document.querySelector('.radio-group').addEventListener('change', function(e) {
  if(e.target.type === 'radio') {
    console.log('选中的值:', e.target.value);
  }
});

动态设置选中状态

function setSelectedValue(value) {
  const radio = document.querySelector(`input[name="option"][value="${value}"]`);
  if(radio) {
    radio.checked = true;
  }
}

使用classList管理样式

为选中的单选按钮添加样式类:

js实现单选

document.querySelectorAll('input[name="option"]').forEach(radio => {
  radio.addEventListener('change', function() {
    document.querySelectorAll('input[name="option"]').forEach(r => {
      r.nextElementSibling.classList.remove('selected');
    });
    if(this.checked) {
      this.nextElementSibling.classList.add('selected');
    }
  });
});

注意事项

  • 确保所有单选按钮的name属性相同,这样浏览器会自动处理单选逻辑
  • 使用label元素可以提高用户体验,点击文本也能选中单选按钮
  • 考虑添加默认选中项:<input type="radio" checked>
  • 移动端开发可能需要调整样式以适应触摸操作

这些方法可以根据具体需求组合使用,实现灵活的单选功能。

标签: 单选js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

vue如何实现单选

vue如何实现单选

使用原生 HTML 单选按钮 在 Vue 中可以直接使用 HTML 的原生单选按钮,通过 v-model 绑定数据。 <template> <div> <…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…