Jquery - 获取当前选择器的类属性

时间:2014-05-29 08:10:04

标签: jquery

锚标记有onclick事件:

<a href="javascript:void(0);" class="Gicon Favor" advertid="@item.adID" 
onclick="followadv('@item.adID'); return false;"></a>

followad功能:

function followadv(advertid) {
    if ($(this).attr('class')=="Gicon Favor") {
       alert("Active");
    }
    else{
       alert("Inactive");
    }
}

followad函数在很多<a>标记内调用,其中一些标记为class='Gicon Favor'。我无法获得调用元素的类值。 $(this).attr('class')不起作用。

3 个答案:

答案 0 :(得分:1)

解决方案1:您需要使用名称值选择器,因为您尚未传递已点击元素对象的引用:

$('[advertid="'+advertid+'"]').attr('class')

解决方案2 :要将其与此一起使用,您需要将onlclick事件修改为onclick="followadv(this)"

<a href="javascript:void(0);" class="Gicon Favor" advertid="@item.adID" onclick="followadv(this)"; return false;"></a>

和JS将是:

function followadv(this) {
if ($(this).attr('class')=="Gicon Favor") {
   alert("Active");
}
else{
   alert("Inactive");
}}

答案 1 :(得分:1)

<强> HTML

<a href="javascript:void(0);" class="Gicon Favor" advertid="@item.adID" onclick="followadv(this); return false;">Link</a>

<强> JS:

function followadv(advertid) {
    if ($(advertid).attr('class')=="Gicon Favor") {
       alert("Active");
    }
    else{
       alert("Inactive");
    }
}

对于您的代码,

function followadv(advertid) {
    if ($('[advertid="'+advertid+'"]').attr('class')=="Gicon Favor") {
       alert("Active");
    }
    else{
       alert("Inactive");
    }
}

答案 2 :(得分:1)

为什么要将vanilla JS与jQuery混合使用?

如果你已经知道你想要点击事件的元素(基于类名),那么为什么不去寻找类似的东西;

<强> HTML

<a href="#" class="Gicon Favor" advertid="@item.adID"></a>

<强> JS

$(function(){

  // make use of the .on() event handler. http://api.jquery.com/on/
  // this will handle a click event on any element that has a class of Gicon
  $(document).on('click', '.Gicon', function(e){
    // prevent the default action of the element. e.g. stop a link from "linking"
    e.preventDefault();
    // get the element's class
    var selectedClass = $(this).attr('class');
  });

});

P.S我可能会将HTML标记更改为data-advertid=而不是advertid=,因为它使其与HTML5约定保持一致。