2012-09-29 58 views
0

我正在使用一个脚本(即正在工作),我可以根据另一个div的类将某个类应用于div。我宁愿使用content:contains()来确定另一个div的类,但是当我使用它时,它会从每个if声明中同时应用每个类。我使用的代码如下。从另一个div中的内容将分类应用于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:是否有一个更清洁的方式做IM当前试图
问题2:如何从.addClass内容与初始股利,作为放在附近的类初始股利。

任何帮助,将不胜感激。

+1

什么是你的HTML样子?你能否为你的问题添加一个有代表性的样本? –

+0

在这里看到示例: http://jsfiddle.net/trobbins26/CD7Mq/3/ – trobbins26

回答

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")); 
+0

伟大的想法,但是我不想替换lngTgtDiv上的类,我想添加到它。我认为这是唯一缺少的,但我不知道如何正确地更改第三行addClass(从var lngSrcDiv) 另外我想从SrcDiv,而不是从类 – trobbins26

+0

现在工作。谢谢。你有关于如何修改这段代码的建议,以引用跨度内的文本作为跨度上的类吗? Thankyou – trobbins26

+0

'.reg-status.long-course span:contains(“open”)'可以工作,但你仍然需要检查全部三行。 –

相关问题