uls を使用して HTML マークアップを作成しています。ユーザーがクラス vid_* (* as something) のリンクをクリックすると、その ID を持つ ul が表示されます。ワイルドカードなしでループを使用すると、次のように機能します。
$(".vid_all").click(function () {
$("#vid_bla").addClass("hidden").removeClass("visible");
$("#vid_muh").addClass("hidden").removeClass("visible");
$("#vid_tschub").addClass("hidden").removeClass("visible");
});
$(".vid_bla").click(function () {
$("#vid_bla").addClass("visible").removeClass("hidden");
$("#vid_muh").addClass("hidden").removeClass("visible");
$("#vid_tschub").addClass("hidden").removeClass("visible");
});
$(".vid_muh").click(function () {
$("#vid_muh").addClass("visible").removeClass("hidden");
$("#vid_bla").addClass("hidden").removeClass("visible");
$("#vid_tschub").addClass("hidden").removeClass("visible");
});
$(".vid_tschub").click(function () {
$("#vid_tschub").addClass("visible").removeClass("hidden");
$("#vid_bla").addClass("hidden").removeClass("visible");
$("#vid_muh").addClass("hidden").removeClass("visible");
});
ここで、代わりにワイルドカードを使用して、ループを動的に処理し、ループを少し短くしたいと考えています。
次のことを試しましたが、機能しません。
var vidRnd = /(.vid_*)/;
var arrVidId = new Array("#vid_plattform", "#vid_format", "#vid_bro");
for (var k in vidRnd) {
$(k).click(function() {
for (var i in arrVidId) {
$(i).addClass("hidden").removeClass("visible");
}
$(k).addClass("visible").removeClass("hidden");
});
};
配列にもワイルドカードを使用したいのですが、方法がわかりません。これに関するアイデアはありますか?