当前位置:首页 > JavaScript

js实现反选

2026-04-04 01:57:15JavaScript

实现反选功能

在JavaScript中实现反选功能通常涉及对一组元素(如复选框)的状态进行反转操作。以下是几种常见的实现方式:

基于DOM操作的反选

// 获取所有复选框元素
const checkboxes = document.querySelectorAll('input[type="checkbox"]');

// 反选逻辑
function toggleSelectAll() {
  checkboxes.forEach(checkbox => {
    checkbox.checked = !checkbox.checked;
  });
}

配合全选按钮的实现

<input type="checkbox" id="selectAll" onclick="toggleAll()">
<label for="selectAll">全选/反选</label>

<script>
function toggleAll() {
  const masterCheckbox = document.getElementById('selectAll');
  const checkboxes = document.querySelectorAll('input[type="checkbox"]:not(#selectAll)');

  checkboxes.forEach(checkbox => {
    checkbox.checked = masterCheckbox.checked;
  });
}
</script>

使用事件委托的反选

对于动态生成的元素,可以使用事件委托:

document.addEventListener('click', function(e) {
  if (e.target.id === 'invertSelection') {
    const checkboxes = document.querySelectorAll('.item-checkbox');
    checkboxes.forEach(checkbox => {
      checkbox.checked = !checkbox.checked;
    });
  }
});

配合数据绑定的实现(Vue示例)

new Vue({
  el: '#app',
  data: {
    items: [
      { id: 1, selected: false },
      { id: 2, selected: true }
    ]
  },
  methods: {
    invertSelection() {
      this.items.forEach(item => {
        item.selected = !item.selected;
      });
    }
  }
});

配合React的实现

function CheckboxList() {
  const [items, setItems] = useState([
    { id: 1, checked: false },
    { id: 2, checked: true }
  ]);

  const invertSelection = () => {
    setItems(items.map(item => ({
      ...item,
      checked: !item.checked
    })));
  };

  return (
    <div>
      <button onClick={invertSelection}>反选</button>
      {items.map(item => (
        <input 
          key={item.id}
          type="checkbox"
          checked={item.checked}
          onChange={() => {}}
        />
      ))}
    </div>
  );
}

性能优化建议

对于大量元素的场景,可以考虑以下优化:

js实现反选

  • 使用文档片段(documentFragment)批量操作DOM
  • 对可见区域外的元素使用虚拟滚动技术
  • 避免在循环中直接操作DOM,先处理数据再批量更新

这些方法涵盖了从原生JavaScript到现代前端框架的反选实现,可以根据具体项目需求选择适合的方案。

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现图片上传

js实现图片上传

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

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现复制到剪贴板

js实现复制到剪贴板

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

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…