使用函数获取jQuery中元素的id

时间:2014-09-11 09:45:04

标签: jquery

我有一个简单的代码,在div容器中有两个按钮。我想使用函数获取按钮的id。

问题:有人可以解释为什么点击Button1不会提醒myButton1?我该如何解决这个问题?

代码

<html>
<body>
    <style type="text/CSS">
        #mydiv{
            border: 1px dashed blue;
            width: 100px;
            height: 100px;
        }
    </style>
    <div id="myDiv">
        <input type="button" id="myButton1" value="Button1"></input>
        <input type="button" id="myButton2" value="Button2"></input>
    </div>

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="code.js"></script>
</body>
</html>

code.js

myfunction = function(e){
    alert(this.id);
    e.stopPropagation();
    }

$('#myDiv').click(function(){
            alert($('#myDiv').attr('id'));
        });

$('#myButton1').click("myfunction()");

$('#myButton2').click(function(e){
            alert(this.id);
            e.stopPropagation();
        });

5 个答案:

答案 0 :(得分:2)

$('#myButton1').click(function(){myfunction(this)});

myfunction = function(e){
    alert(e.target.id);
    e.stopPropagation();
    }

答案 1 :(得分:1)

您的#myButton2示例准确无误。您需要使用this.id来获取触发事件的元素的ID:

$('#myDiv').click(function() {
    alert(this.id);
});

但是,如果没有点击该按钮,则会点击整个#myDiv元素。

如果您想要一个事件来处理所有按钮的点击,您可以使用:

$('#myDiv').find('input[type="button"]').click(...);

答案 2 :(得分:1)

试试这个: -

$('#myButton1').click(function(){
    console.log(this.id);
});

答案 3 :(得分:1)

当您单击myButton1时,JS无法调度该事件并抛出TypeError: undefined is not a function,因为您调用的方法不正确。但是,您的浏览器可以在父#myDiv上注册点击,从而提醒其ID而不是您期望的那个。

你差不多用你自己的代码开启了。由于您将myfunction作为click函数的参数传递,因此它不应包含括号或语音标记。

E.G:

myfunction = function(e){
    alert(this.id);
    e.stopPropagation();
}

$('#myDiv, #myButton1, #myButton2').click(myfunction);

http://jsfiddle.net/asmr0305/1/

答案 4 :(得分:-1)

.click()应该以{{1​​}}而不是Function作为参数。

应该是:

String

Fiddle

相关问题