我目前正在使用一个脚本(正在运行),我可以根据另一个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上的类相似。
任何帮助都将不胜感激。
答案 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"));