jQuery:如果class=active?

9
$(document).ready(function() {    
    $('a#fav').bind('click', function() {
        addFav(<?php echo $showUP["uID"]; ?>);
    });
});

我需要修改这个代码,以便如果a#fav具有class="active"的属性,则应执行以下操作。
  removeFav(<?php echo $showUP["uID"]; ?>);

我该如何做到这一点?

代替
3个回答

24
你想要使用 hasClass 函数。
$(document).ready(function() {    
    $('a#fav').bind('click', function() {
        if($(this).hasClass('active')) {
            removeFav(<?php echo $showUP["uID"]; ?>);
        }
        else {
            addFav(<?php echo $showUP["uID"]; ?>);
        }
    });
});

编辑:仅仅是为了好玩,还有一种更简洁的写法:

$(function() {    
    $('a#fav').bind('click', function() {
        var uID = <?php echo $showUP["uID"]; ?>;
        ($(this).hasClass('active') ? removeFav : addFav)(uID);
    });
});

1
+1 我喜欢你的最新版本。刚刚注意到你已经有了它,所以我删除了我的版本。如果你去掉 uID 变量,你可以将它变成单行代码。 :o) - user113716

1
$(document).ready(function() {    
    $('a#fav').bind('click', function() {
        if ($(this).hasClass('active'))
            removeFav(<?php echo $showUP["uID"]; ?>);
        else
             addFav(<?php echo $showUP["uID"]; ?>);
    });
});

1
$(function() {    
  $('a#fav').click(function() {
    return ($(this).hasClass('active'))
      ? removeFav('<?php echo $showUP["uID"]; ?>')
      : addFav('<?php echo $showUP["uID"]; ?>');
  });
});

请在 meta.stackoverflow.com 上查看“如何格式化代码”问题:http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks - David Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接