使用onclick从元素中获取类名

时间:2013-06-12 08:29:30

标签: javascript jquery onclick

由于不同的原因,我不能使用$('。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>

8 个答案:

答案 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);
}

fiddle here

答案 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>

DEMO

答案 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);
}

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

答案 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>