0

現在、別のdivのクラスに基づいて、特定のクラスをdivに適用できるスクリプト(動作中)を使用しています。ifcontent:contains() を使用して他の div のクラスを決定したいのですが、それを使用すると、すべてのステートメントからすべてのクラスが同時に適用されます。使用しているコードは以下のとおりです。

// Set Olympic
            if($(".reg-status.olympic span").hasClass("open")) {
                $(".reg-status-view.olympic").addClass("open");
            }
            if($(".reg-status.olympic span").hasClass("waiting")) {
                $(".reg-status-view.olympic").addClass("waiting");
            }
            if($(".reg-status.olympic span").hasClass("closed")) {
                $(".reg-status-view.olympic").addClass("closed");
            }

            // Set Long Course
            if($(".reg-status.long-course span").hasClass("open")) {
                $(".reg-status-view.long-course").addClass("open");
            }
            if($(".reg-status.long-course span").hasClass("waiting")) {
                $(".reg-status-view.long-course").addClass("waiting");
            }
            if($(".reg-status.long-course span").hasClass("closed")) {
                $(".reg-status-view.long-course").addClass("closed");
            }

質問 1: 現在試していることを行うためのよりクリーンな方法はありますか
?.addClass

どんな助けでも大歓迎です。

4

1 に答える 1

0

まず、DOM の再検索を防ぐために、検索を参照変数に入れます。次に、ソース div に「open」、「closed」、「waiting」クラスのみが含まれている場合は、class 属性をターゲット div にコピーできます。

var olySrcDiv = $(".reg-status.olympic span");
var olyTgtDiv = $(".reg-status-view.olympic");
olyTgtDiv.attr("class",olyTgtDiv.attr("class") + " " + olySrcDiv.attr("class"));

var lngSrcDiv = $(".reg-status.long-course span");
var lngTgtDiv = $(".reg-status-view.long-course");
lngTgtDiv.attr("class",lngTgtDiv.attr("class") + " " + lngSrcDiv.attr("class"));
于 2012-09-29T21:00:05.127 に答える