0

我目前正在使用一个脚本(正在工作),我可以根据另一个 div 的类将某个类应用于 div。我更喜欢使用 content:contains() 来确定另一个 div 的类,但是当我使用它时,它会同时从每个if语句中应用每个类。我使用的代码如下。

// 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:有没有一种更简洁的方法来做我目前正在尝试的事情
问题 2:我如何.addClass从包含初始 div 的内容中,与初始 div 上的类相对应。

任何帮助,将不胜感激。

4

1 回答 1

0

首先,将搜索放入一个引用变量中,以防止重新搜索 dom。其次,如果源div只包含“open”、“close”、“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 回答