0

block表示値をすべて<td>のクラスに設定.subjectGroupCompare し、残りを「なし」に設定したいと思います。一日中試していました-eek。シンプルであるべきだと思われます。

$("#SFGPage").children("table").eq(1).find("td").each(function() {
   var $td = $(this);
   if ($(".subjectGroupCompare")[0]) { 
       $td.css("display", "block"); 
   } else { 
       $td.css("display", "none");
   }
});
4

4 に答える 4

1

$tdにクラスがあるかどうかを確認したいと思います。そうでsubjectGroupCompareあれば、これが必要です

if($td.hasClass('subjectGroupCompare')) {
    $td.css("display", "block"); 
}
else { 
   $td.css("display", "none");
}
于 2013-07-24T01:19:24.133 に答える
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");
   }
});
于 2013-07-24T01:20:02.043 に答える
0

私はセレクターをあなたのコードに依存しているので、block/none を td で表示したい場合は、これを試すことができます

これにより、クラス .subjectGroupCompare を持たないすべての td が非表示になります

$("#SFGPage").children("table").eq(1).find("td:not(.subjectGroupCompare)").css("display", "none");

class .subjectGroupCompare ですべて表示

$("#SFGPage").children("table").eq(1).find("td.subjectGroupCompare").css("display", "block");

.hide()または使用することもできると思います.show()

于 2013-07-24T01:31:08.700 に答える
0

jQuery にもっと仕事をさせてみませんか? コードはよりクリーンで、ループと 'if' 条件を手動で記述するよりも、最適化/ホットスポット化される可能性が高い jQuery を使用した最適化の機会が与えられます。

このようなもの:

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 が言うように、テーブル セルに display:block を設定する際に問題が発生する可能性があります。これらの問題を調査し、ソリューションを自分で適応させることができます。

于 2013-07-24T01:37:36.610 に答える