Javascript 需要从表的TD中添加/删除类
需要根据按钮单击从表的TD中添加/删除类。默认情况下,所有TD都将隐藏。单击按钮时,我需要单独启用相应的TD JSFiddle: 代码: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表=”; 表+=”; 表+=”; 表+=“序号”; 表+=“名称”;
.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
从带有classrecordRow
的tr中删除,并将td与classhideThis
和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;
}