jQuery 使用 onclick 从元素中获取类名
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17060971/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
get class name from element with onclick
提问by caramba
Because of different reasons I can NOT use $('.class').click or on('click', function..)
由于不同的原因,我不能使用 $('.class').click 或 on('click', function..)
So I really have to use the onclick="" event from the html element.
所以我真的必须使用来自 html 元素的 onclick="" 事件。
Is there a way to find out the class from the element where the onclick happens?
有没有办法从 onclick 发生的元素中找出类?
and the fiddle http://jsfiddle.net/Aw8Rb/
和小提琴http://jsfiddle.net/Aw8Rb/
Thanks for all the help!
感谢所有的帮助!
<!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>
回答by bipen
you need to pass this
reference when calling the function
this
调用函数时需要传递引用
try 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'));
}
with plain javascript (without Jquery)
使用普通的 javascript(没有 Jquery)
function someFunction(obj,abc) {
alert(obj.className);
}
回答by Alessandro Minoccheri
If you add the element to the argument you can use it into your function to retrieve all data that you want
Try this:
如果您将元素添加到参数中,您可以在函数中使用它来检索您想要的所有数据
试试这个:
<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>
回答by NullPointer
From jsfiddle
you provided, edit your code like below and you'll get answer (class) properly.
根据jsfiddle
您提供的内容,编辑您的代码,如下所示,您将正确获得答案(课程)。
<span class="classic four" onclick="someFunction(this,'four')">CLICK HERE</span>
function someFunction(obj,abc) {
alert(abc);
alert(obj.getAttribute('class'));
}
Pass this
as first argument and then access it in function with obj
. After that you can use obj.getAttribute('class')
this
作为第一个参数传递,然后在函数中使用obj
. 之后你可以使用obj.getAttribute('class')
回答by Kevin Bowersox
Add this
as an argument to the inline event handler:
添加this
作为内联事件处理程序的参数:
<span class="classic one" onclick="someFunction(this,'one')">CLICK HERE</span>
Then use the className
property of element to get the className
然后使用className
元素的属性来获取className
function someFunction(e,abc) {
console.log(this);
alert(e.className);
}
Working Examplehttp://jsfiddle.net/Aw8Rb/8/
回答by Jason
Pass this.className
as the parameter .. eg.
this.className
作为参数传递.. 例如。
<input type="button" onclick="abc(this.className)" />
回答by Sudip Pal
onclick="javascript:someFunction(this)"
function someFunction(obj) {
console.log($(obj).attr('class'));
}
You will get the two classes in the order of writing.
你会按照写作的顺序得到这两个类。