jQuery检查元素是否具有特定属性

我试图看一个元素是否具有特定的CSS属性。 我在考虑这样的事情:

if ( !$(this).attr('font-style', 'italic')) { alert ("yop") } else { alert ("nope") } 

这是行不通的。 关于这个的任何提示? 谢谢!

这是一个简单的插件(测试):

 $.fn.hasCss = function(prop, val) { return $(this).css(prop.toLowerCase()) == val.toLowerCase(); } $(document).ready(function() { alert($("a").hasCss("Font-Style", "Italic")); }); Test 

你正试图获得一种CSS风格。 css方法可以获取信息

 if ( !$(this).css('font-style') == "italic") { alert ("yop") } else { alert ("nope") } 

你可以得到font-style元素并使用==运算符来获得true / false值:

 if($(this).attr('font-style') == 'italic') { alert('yes') } else { alert('no') } 

这个怎么样

  if ($(this).css('font-style', 'italic')) { alert ("yes") } else { alert ("nop") } 

但是我宁愿使用console.log而不是警告如果我是你,使用firebug它不那么讨厌和更有趣:D

  

我不明白为什么这不起作用..

尝试条件的morf和添加的几个半列:

 $(document).ready(function() { $('#selectable1 span').live('click', function() { if ($(this).css('font-style') != "italic") { alert("yop"); } else { alert("nope"); }; }); }); 

注意:基于其他注释对选择和后续标记做出假设 – 需要查看html以确保这一点。

你要这个:

 if ( $(this).attr('font-style') != 'italic') { alert ("yop") } else { alert ("nope") }