お使いのバージョンにはいくつかの問題がありました:
が最後<a>
(リーボック用)は、間違ったクラスを持っていた:TRTown
TownToggle
nextUntil(...)
のTownToggle
は、.TRTown
、これは、それがリストの最後の町であるときにあまりにも隠れて、次のブランドも隠し続けます。また、.TRBrasnd
で停止する必要があります。両方のセレクタをコンマで区切って指定できます。
a.toggleTown
+
にテキスト値を更新するときに私が正しくあなたの要件を理解していれば、次はあなたが欲しいものを行う必要があり、正しく標的化されていなかった。http://jsfiddle.net/Sx4qg/69/
$('.BrandToggle').click(function() {
var t = $(this);
var txt = t.text();
var tr = t.closest("tr");
if (txt == "+") {
tr.nextUntil(".TRBrand", ".TRTown").show();
} else {
tr.nextUntil(".TRBrand", ".TRTown, .TRShoes").hide();
tr.nextUntil(".TRBrand", ".TRTown").find("a.TownToggle").text("+");
}
t.text(txt == "+" ? "-" : "+");
});
$(".TownToggle").click(function() {
var t = $(this);
var txt = t.text();
var tr = t.closest("tr");
if (txt == "+") {
tr.nextUntil(".TRBrand,.TRTown", ".TRShoes").show();
} else {
tr.nextUntil(".TRBrand,.TRTown", ".TRShoes").hide();
}
t.text(txt == "+" ? "-" : "+");
});
すごく、ありがとう。それは問題だった「a.toggletown」をターゲットにしたものでした。私は前に 'find'を使ったことはありません - 非常に便利です。 実際のシナリオ(自動車販売数)をスポーツシューズに変換すると、他のエラーがうまくいっています:-o – 5arx
ようこそ。 –