锚标记有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')
不起作用。
答案 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约定保持一致。