将类应用于另一个div中的内容div

时间:2012-09-29 20:44:36

标签: jquery add

我目前正在使用一个脚本(正在运行),我可以根据另一个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上的类相似。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分: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"));