2010-02-25 2 views
4

Я пытаюсь проверить, есть ли элемент с определенным атрибутом CSS. Я думаю о чем-то вроде этого:jQuery проверить, имеет ли элемент определенный атрибут

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

Это не работает. Какие-нибудь советы по этому поводу? Спасибо!

+1

+1 из-за полученного ответа :) –

ответ

5

Вот простой плагин, чтобы сделать это (проверено):

$.fn.hasCss = function(prop, val) { 
    return $(this).css(prop.toLowerCase()) == val.toLowerCase(); 
} 

$(document).ready(function() { 
    alert($("a").hasCss("Font-Style", "Italic")); 
}); 

<a style="fonT-sTyle:ItAlIc">Test</a> 
+0

Thanx Karim. Это работает! – Mircea

+1

Я вижу достоинство этого подхода :) +1 для этого. –

+1

Ваш код работает.Я пошел, как это и сделать небольшие изменения:. Mircea

1

вы можете получить элемент стиля шрифта и использовать == оператора, чтобы получить истинное/ложное значение:

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

Thanx для подсказки! – Mircea

4

Вы пытаетесь получить стиль CSS. Метод CSS может получить информацию

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

Выглядит хорошо, но он не работает над моим кодом. Курсив курсивом добавляется динамически, но я использую live и должен работать ... Mircea

0

Вы хотите:

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

Как насчет этого

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

Но я бы предпочел использовать console.lo г вместо предупреждения, если я вам, использование поджигатель его менее раздражающим и веселее: D

<script> 

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

</script> 

Я не понимаю, почему это не должно работать ..

+1

thanx, Код выглядит хорошо, но по какой-то причине не работает для меня. Я смотрю на это действительно, шум предупреждения заставляет меня истекать кровью ... – Mircea

0

Попробуйте Морф условного и несколько полуколоннами добавил:

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

Примечание: Создание предположения относительно выбора и последующей разметки на основе других комментариев - должны были бы увидеть HTML, чтобы убедиться в этом.

Смежные вопросы