我想将block
的所有<td>
的显示值设置为.subjectGroupCompare
其余的都是'无'。一整天都在努力。似乎应该很简单。
$("#SFGPage").children("table").eq(1).find("td").each(function() {
var $td = $(this);
if ($(".subjectGroupCompare")[0]) {
$td.css("display", "block");
} else {
$td.css("display", "none");
}
});
答案 0 :(得分:1)
我想,您想检查$td
是否有subjectGroupCompare
类,如果有,那么您需要这个
if($td.hasClass('subjectGroupCompare')) {
$td.css("display", "block");
}
else {
$td.css("display", "none");
}
答案 1 :(得分:1)
您的if
声明错误。
您必须检查特定节点是否具有该subjectGroupCompare
类。您可以使用
$td.hasClass("subjectGroupCompare")
所以在最后,你的代码看起来像这样
$("#SFGPage").children("table").eq(1).find("td").each(function() {
var $td = $(this);
if ($td.hasClass("subjectGroupCompare")) {
$td.css("display", "block");
} else {
$td.css("display", "none");
}
});
答案 2 :(得分:0)
我将我的选择器依赖于你的代码,所以如果你想显示block / none td,你可以试试这个
这将隐藏所有没有类的td .subjectGroupCompare
$("#SFGPage").children("table").eq(1).find("td:not(.subjectGroupCompare)").css("display", "none");
显示所有类.subjectGroupCompare
$("#SFGPage").children("table").eq(1).find("td.subjectGroupCompare").css("display", "block");
我认为你也可以使用.hide()
或.show()
答案 3 :(得分:0)
为什么不让jQuery做更多的工作呢?代码更清洁&amp;它为jQuery提供了优化的机会,它更有可能被优化/热点化,而不是你编写一个循环&amp; 'if'手动条件。
这样的事情:
var table = $("#SFGPage").children("table").eq(1);
var tds = table.find("td");
tds.filter( ".subjectGroupCompare").css( "display", "block");
tds.not( ".subjectGroupCompare").css( "display", "none");
正如@ehdv所说,设置显示可能会出现问题:阻止表格单元格。你可以调查这些问题&amp;自己调整解决方案。