Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要从表的TD中添加/删除类_Javascript_Jquery_Css - Fatal编程技术网

Javascript 需要从表的TD中添加/删除类

Javascript 需要从表的TD中添加/删除类,javascript,jquery,css,Javascript,Jquery,Css,需要根据按钮单击从表的TD中添加/删除类。默认情况下,所有TD都将隐藏。单击按钮时,我需要单独启用相应的TD JSFiddle: 代码: .hideThis{display:none;} td,th{ 边界:薄固体; } 函数constrctTable(){ var TableRef=document.getElementById(“TableConstruction”); TableRef.innerHTML=“”; var表=”; 表+=”; 表+=”; 表+=“序号”; 表+=“名称”;

需要根据按钮单击从表的TD中添加/删除类。默认情况下,所有TD都将隐藏。单击按钮时,我需要单独启用相应的TD

JSFiddle:

代码:


.hideThis{display:none;}
td,th{
边界:薄固体;
}
函数constrctTable(){
var TableRef=document.getElementById(“TableConstruction”);
TableRef.innerHTML=“”;
var表=”;
表+=”;
表+=”;
表+=“序号”;
表+=“名称”;
表+=“员工编号”;
表+=“经理编号”;
表+=“办事员编号”;
表+=”;

对于(i=0;i您需要使用属性选择器,因为
Employee
name
属性的值

$('.recordRow td.hideThis[name="Employee"]').removeClass('hideThis');
此外,您还可以微调选择器,使其仅包括类
hideThis

  • hideThis
    类被分配给
    td
    ,因此您需要将其从
    td
    中删除-无需使用:has()
  • :包含对文本内容的检查,在您的情况下,您正在检查属性的值-使用属性选择器

    • 在您的上下文中,名称是一个属性而不是文本,因此您必须使用属性选择器来实现所需的内容

      试试看

      根据你的新要求你可以这样做

      var allTds = $('.recordRow').find('td');
      var employeeTd =  cache.find('.hideThis[name="Employee"]');
      allTds.not(employeeTd).addClass('hideThis');
      employeeTd.removeClass('hideThis');
      

      无需使用JavaScript即可完成,使用CSS即可完成:

      table td + td + td + td {
         border: none;
       }
      
      我之所以提供此解决方案,是因为用户可能没有在其浏览器上提供JavaScript权限,在这种情况下,您的代码将无法工作

      您可以在此处找到类似的问题:


      hideThis
      被分配给
      td
      ,因此您需要将其从
      td
      中删除,在您的情况下,您试图将其从
      tr
      中删除-您试图将类
      hideThis
      从带有class
      recordRow
      的tr中删除,并将td与class
      hideThis
      name
      属性值
      Employee
      感谢您的帖子。它解决了我的问题,但没有禁用其他TD。我更新了代码。为什么不禁用包含其他名称值的其他TD?请帮助我解决此问题…为什么[名称!=“Employee”]在更新的上述代码中不起作用。我需要隐藏其他代码TD@Hariharan您已经删除了该类,因此您的代码应该是这样的
      $('.recordRow td[name!='+enableRef+'])。addClass('hideThis'));
      谢谢你的回复。它不起作用,我在我的帖子中用JSFIDLE更新了它。请参考。谢谢你的帖子。它解决了我的问题,但没有禁用其他TD。我更新了我的代码。为什么不禁用包含其他名称值的其他TD?请帮助我解决这个问题…为什么[name!=“Employee”]在更新后的上述代码中不起作用。我需要隐藏其他TD。我在我的帖子中在JSFIDLE中更新了相同的TD。请参考它并让我知道我哪里做错了。更新了帖子。@Hariharan一个更干净的方式-有html更改Hanks Arun,我错过了清晰地解释我的需求。我将在JSFIDLE中快速更新它。抱歉我的错误请检查这个答案,我不确定你在寻找这个答案
      var allTds = $('.recordRow').find('td');
      var employeeTd =  cache.find('.hideThis[name="Employee"]');
      allTds.not(employeeTd).addClass('hideThis');
      employeeTd.removeClass('hideThis');
      
      table td + td + td + td {
         border: none;
       }