我如何更改:包含处理确切的字符串?

时间:2015-04-07 08:33:50

标签: javascript jquery

我有一个脚本根据文本字符串设置一个类。但是我不能让它工作,它将所有三个选项设置为第二个类。如何将包含更改为Equals?

$(document).ready(function(){
if ($('span.conditionHilite:contains("Approved Selection ONE")').length){
$(".productbox .item .right").before( '<span class="myAwesomeBanner">    </span>' );
}
else if ($('span.conditionHilite:contains("Approved Selection")').length){
$(".productbox .item .right").before( '<span class="myAwesomeBanner2">  </span>' );
}
else if ($('span.conditionHilite:contains("Approved Selection Budget")').length){
$(".productbox .item .right").before( '<span class="myAwesomeBanner3"></span>' );
}
});

1 个答案:

答案 0 :(得分:0)

$('span.conditionHilite').each(function(){
   var productBoxClass;

   if($(this).text() == 'Approved Selection ONE')
   {
      productBoxClass = 'myAwesomeBanner';
   }
   else if($(this).text() == 'Approved Selection')
   {
      productBoxClass = 'myAwesomeBanner2';
   }
   else if($(this).text() == 'Approved Selection Budget')
   {
      productBoxClass = 'myAwesomeBanner3';
   }

   if(productBoxClass)
   {
       $(".productbox .item .right").before( '<span class="' + productBoxClass + '"></span>' );
   } 
});

<强>解释

循环遍历所有相关的span元素,如果符合文本条件,请设置要在创建新span时使用的新类,并在最后使用此类创建您的{ {1}}。

替代方法

为了与匹配元素的计数(即使用span)保持一致,您可以使用jQuery过滤器:

http://api.jquery.com/filter/

哪会返回一个元素列表,只需使用length