JQuery проверить, если элемент имеет определенный атрибут - PullRequest
4 голосов
/ 25 февраля 2010

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

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

Это не работает. Любые советы по этому поводу? Спасибо!

Ответы [ 6 ]

5 голосов
/ 25 февраля 2010

Вот простой плагин для этого (проверено):

$.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>
4 голосов
/ 25 февраля 2010

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

if ( !$(this).css('font-style') == "italic") {
    alert ("yop")
}
else {
    alert ("nope")
}
1 голос
/ 25 февраля 2010

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

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

Но я бы предпочел использовать console.log вместо оповещения, если бы вы были на вашем месте, используйте firebug, это менее раздражает и веселее: D

<script>

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

</script> 

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

1 голос
/ 25 февраля 2010

вы можете получить элемент font-style и использовать оператор ==, чтобы получить значение true / false:

if($(this).attr('font-style') == 'italic')
{
    alert('yes')
}
else
{
    alert('no')
}
0 голосов
/ 25 февраля 2010

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

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

ПРИМЕЧАНИЕ. Делая предположение относительно выбора и последующей разметки на основе других комментариев, необходимо убедиться в наличии HTML-кода, чтобы убедиться в этом.

0 голосов
/ 25 февраля 2010

Вы хотите это:

if ( $(this).attr('font-style') !=  'italic') {
  alert ("yop")
}
else {
  alert ("nope")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...