You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

响应式6列对比器移动端列隐藏代码失效求助

解决响应式对比器移动端隐藏列的问题

嘿,我来帮你搞定这个问题~你代码失效的原因很明确:直接把数组和选择器字符串拼接,生成的是无效的jQuery选择器。

问题分析

你写的$('.column-' + y)里,数组y会被自动转成字符串"2,3,4,5,6",最终生成的选择器是.column-2,3,4,5,6。这个选择器只会匹配.column-2元素,后面的3、4等是被当成标签名来查找的(显然不存在这类标签),所以只有第2列会被加上类,其他列都没被选中。

修复方案

这里给你两种简单有效的修复方式:

方案1:遍历数组逐个处理元素

直接循环数组里的每个列号,单独选中对应元素添加类:

// 在移动设备上调用该函数
function hideColumns(){
  var y = [2, 3, 4, 5, 6]; // 想要隐藏的列编号
  y.forEach(function(columnNum) {
    $('.column-' + columnNum).addClass('display-none');
  });
}

方案2:生成正确的选择器字符串

把数组转换成符合jQuery语法的选择器(比如.column-2, .column-3, ...),再一次性选中所有目标元素:

// 在移动设备上调用该函数
function hideColumns(){
  var y = [2, 3, 4, 5, 6]; // 想要隐藏的列编号
  // 把数组转成逗号分隔的选择器字符串
  var targetSelectors = y.map(num => '.column-' + num).join(', ');
  $(targetSelectors).addClass('display-none');
}

额外:原生JS实现(如果不想依赖jQuery)

要是你之后想去掉jQuery依赖,也可以用原生JS写:

// 在移动设备上调用该函数
function hideColumns(){
  var y = [2, 3, 4, 5, 6]; // 想要隐藏的列编号
  y.forEach(function(columnNum) {
    const columnElement = document.querySelector('.column-' + columnNum);
    if (columnElement) { // 避免找不到元素报错
      columnElement.classList.add('display-none');
    }
  });
}

这几种方法都能正确给第2到第6列加上.display-none类,实现移动端只显示第一列的需求~

内容的提问来源于stack exchange,提问作者Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:06:48