由于不同的原因,我不能使用$('。class')。点击或打开('点击',功能..)
所以我真的必须使用html元素中的onclick =“”事件。
有没有办法从发生onclick的元素中找出该类?
和小提琴http://jsfiddle.net/Aw8Rb/
感谢您的帮助!
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<span class="classic one" onclick="someFunction('one')">CLICK HERE</span>
<span class="classic two" onclick="someFunction('two')">CLICK HERE</span>
<span class="classic three" onclick="someFunction('three')">CLICK HERE</span>
<span class="classic four" onclick="someFunction('four')">CLICK HERE</span>
<script type="text/javascript">
function someFunction(abc) {
alert(abc);
alert($(this).attr('class'));
}
</script>
</body>
</html>
答案 0 :(得分:22)
调用函数
时需要传递this
引用
试试这个
<span class="classic one" onclick="someFunction(this,'one')">CLICK HERE</span>
...... //same for others
<强> jquery的强>
function someFunction(obj,abc) {
alert(abc);
alert($(obj).attr('class'));
}
使用普通的javascript(没有Jquery)
function someFunction(obj,abc) {
alert(obj.className);
}
答案 1 :(得分:6)
使用this.className
here的非jquery方式。
答案 2 :(得分:2)
如果将元素添加到参数中,则可以将其用于函数中以检索所需的所有数据 试试这个:
<span class="classic one" onclick="someFunction('one',this)">CLICK HERE</span>
<span class="classic two" onclick="someFunction('two',this)">CLICK HERE</span>
<span class="classic three" onclick="someFunction('three',this)">CLICK HERE</span>
<span class="classic four" onclick="someFunction('four',this)">CLICK HERE</span>
<script type="text/javascript">
function someFunction(abc,obj) {
alert(abc);
alert($(obj).attr('class'));
}
</script>
答案 3 :(得分:2)
从您提供的jsfiddle
,编辑您的代码,如下所示,您将得到正确的答案(课程)。
<span class="classic four" onclick="someFunction(this,'four')">CLICK HERE</span>
function someFunction(obj,abc) {
alert(abc);
alert(obj.getAttribute('class'));
}
将this
作为第一个参数传递,然后使用obj
在函数中访问它。之后,您可以使用obj.getAttribute('class')
答案 4 :(得分:1)
传递this.className
作为参数..例如。
<input type="button" onclick="abc(this.className)" />
答案 5 :(得分:1)
将this
作为参数添加到内联事件处理程序:
<span class="classic one" onclick="someFunction(this,'one')">CLICK HERE</span>
然后使用element的className
属性获取className
function someFunction(e,abc) {
console.log(this);
alert(e.className);
}
答案 6 :(得分:0)
onclick="javascript:someFunction(this)"
function someFunction(obj) {
console.log($(obj).attr('class'));
}
您将按写作顺序获得这两个课程。
答案 7 :(得分:0)
你可以这样做:
js...
function thisFunction(e) {
console.log(e.target.class); // should return the class of the element that called it (button)
}
html...
<button onclick="thisFunction()">Click Me</button>