当前位置:首页 > JavaScript

js实现单选

2026-02-01 01:35:39JavaScript

实现单选功能的JavaScript方法

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

HTML结构示例

js实现单选

<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);
    }
  });
});

获取选中值

js实现单选

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管理样式

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

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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…