6

由于不同的原因,我不能使用 $('.class').click 或 on('click', function..)

所以我真的必须使用 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>
4

8 回答 8

25

调用函数时需要传递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);
}

在这里摆弄

于 2013-06-12T08:32:53.037 回答
5

this.className 使用here的非jquery方式。

于 2013-06-12T08:47:52.417 回答
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')

于 2013-06-12T08:38:05.993 回答
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>

演示

于 2013-06-12T08:33:09.293 回答
1

this作为参数添加到内联事件处理程序:

<span class="classic one"   onclick="someFunction(this,'one')">CLICK HERE</span>

然后使用classNameelement的属性获取className

function someFunction(e,abc) {
      console.log(this);
      alert(e.className);
}

工作示例 http://jsfiddle.net/Aw8Rb/8/

于 2013-06-12T08:38:16.247 回答
1

作为参数传递this.className.. 例如。

<input type="button" onclick="abc(this.className)" />
于 2013-06-12T08:34:30.843 回答
0
onclick="javascript:someFunction(this)"

function someFunction(obj) {  
            console.log($(obj).attr('class'));  
}

您将按写作顺序获得这两个课程。

于 2013-06-12T08:40:04.727 回答
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>
于 2021-07-10T07:52:32.873 回答