使用元素选择器进行条件格式化

时间:2012-04-22 04:39:08

标签: jquery

我正在尝试突出显示没有href设置的所有链接,或者它是否为空白。我写了以下内容:http://jsfiddle.net/nSMEf/

$(document).ready(function() {
  if ($('.green').attr("href") == "" || typeof $('.green').attr("href") === 'undefined'){
      $('.green').attr('class', 'yellow');
  }

  if ($('.blue').attr("href") == "" || typeof $('.blue').attr("href") === 'undefined'){
       $('.blue').attr('class', 'yellow');
  }
});

我注意到if语句似乎仅适用于首先出现的链接,并且所有以下链接的样式都相同。第二个“蓝色”组与第一个相同但订单已切换。

我的方法显然不对。是否有可能在每个元素上有条件地应用黄色类(基于href是空白还是没有)?

3 个答案:

答案 0 :(得分:2)

这会有帮助吗

    $("a").each(function(){

       if(!($(this).attr("href")) || $(this).attr("href") == "") {
          $(this).addClass("yellow");
       }       
    });

更新了jsfiddle:http://jsfiddle.net/nSMEf/3/

根据评论中的建议编辑上述代码

 $("a").each(function(){
    var self = $(this).attr("href");
    if(!(self) || self == "") {
        $(this).addClass("yellow");
    }        
});

答案 1 :(得分:1)

Hiya 演示 http://jsfiddle.net/5ehtZ/ || http://jsfiddle.net/5ehtZ/2/

<强>码

$("a").each(function(){
    //do something with the element here.
    if (!($(this).attr("href")) || $(this).attr("href") == ""){
        // now blue and green diff is not needed because you append yellow if they are empty.
         $(this).attr('class', 'yellow');
    }

});
​

答案 2 :(得分:1)

等等......什么?

jQuery选择器不会完成这项工作吗?

$( '蓝色[HREF = “”] ')addClass(' 黄色');