尝试使用.attr()执行.has()来设置更多样式

时间:2013-01-05 22:26:34

标签: jquery

我正在尝试使用if else if语句为我的jQuery添加多个语句,以便它完整地完成。唯一的问题是我得到一个控制台错误,其中两个当然没有工作呃!

代码

$(document).ready(function() { 
 var NLG = $('.post .name strong a').has('span'); 
if {
   NLG.attr('style','color:#09B300').css({'font-weight':'bold'});
   }
 else if {
     NLG.attr('style','color:#09B400').css({'text-decoration':'underline'});
         }
});

我不知道我是否正确写了.attr,甚至不是.has()

如果声明我还有更多其他的东西,并且希望你能理解我想要做的事情。基本上搜索跨度是否为带有颜色基础的样式,如果有的话还有更多的CSS。

感谢demwunz我已经解决了问题,并且了解if条件,我们更感谢大家!

$(document).ready(function() { 
    var NLG = $('.post .name a span');
    var color = NLG.attr('style');
 if(color === 'color:#09B300'){
    NLG.addClass('bringingback');
    } 
  else if (color === 'color:#09B400'){
    NLG.addClass('takenback');
        }
});

3 个答案:

答案 0 :(得分:3)

如前所述,您需要将参数传递给if语句。我喜欢存储这些值,因此它们更容易引用,并且需要更少的操作来获取它们。

$(document).ready(function() { 
    var NLG = $('.post .name strong a').has('span');
    var color = NLG.css('color');
  if(color === '#09B300'){
    NLG.css('font-weight','bold');
  } else if (color === '#09B400'){
    NLG.css('text-decoration','underline');
  }
});

答案 1 :(得分:1)

你没有写if的条件陈述。

基于:

  

基本上搜索跨度是否为带有颜色基础的样式,如果有的话,还有更多的CSS。

您可能希望根据颜色添加一些类,这样可以更轻松地进行测试。例如,类名greengreenest

.green {
  color: #09B300;
}

.greenest {
  color: #09B400;
}

然后将它们添加到各自的元素中,而不是使用内联样式进行设置。现在,您可以使用.hasClass()来测试给定的类名。

$(document).ready(function() { 
  var $NLG = $('.post .name strong a').has('span'); 
  if ($NLG.hasClass("green")) {
    $NLG.css('font-weight', 'bold');
  } else if ($NLG.hasClass("greenest")) {
    $NLG.css('text-decoration', 'underline');
  }
});

答案 2 :(得分:0)

if语句没有任何条件。

$(document).ready(function() { 

var NLG = $('.post .name strong a').has('span'); 

if(condition1==condition2) 
{
   NLG.attr('style','color:#09B300').css({'font-weight':'bold'});
}
else if(condition3==condition1) 
{
   NLG.attr('style','color:#09B400').css({'text-decoration':'underline'});
}

});