将元素ID传递给Javascript函数

将元素ID传递给Javascript函数,javascript,html,Javascript,Html,我已经看到许多与我的问题标题相关的帖子 以下是HTML代码: <button id="button1" class="MetroBtn" onClick="myFunc(this.id);">Btn1</button> <button id="button2" class="MetroBtn" onClick="myFunc(this.id);">Btn2</button> <button id="button3" class="MetroB

我已经看到许多与我的问题标题相关的帖子

以下是HTML代码:

<button id="button1" class="MetroBtn" onClick="myFunc(this.id);">Btn1</button>
<button id="button2" class="MetroBtn" onClick="myFunc(this.id);">Btn2</button>
<button id="button3" class="MetroBtn" onClick="myFunc(this.id);">Btn3</button>
<button id="button4" class="MetroBtn" onClick="myFunc(this.id);">Btn4</button>
你可以从中看到

问题是:

我不知道,可能没有将
这个.id
传递到
myFunc
函数,或者其他一些问题

有什么问题吗

如果您有任何帮助,我们将不胜感激。

请检查:

您应该将左上角的JSFIDLE更改为
无换行符


您的代码看起来不错,可以在普通页面中运行。在JSFIDLE中,您的函数是在加载处理程序中定义的,因此位于不同的作用域中。通过更改为“不换行”,您可以在全局范围内使用它,并且可以根据需要使用它。

在JSFIDLE中,默认情况下,您在脚本块中键入的代码会换行到在window.onload上执行的函数中

<script type='text/javascript'>//<![CDATA[ 
    window.onload = function () {
        function myFunc(id){
            alert(id);     
        }
    }
//]]>  
</script>
因此,该函数在全局范围内,可用于html按钮。

这将起作用:

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/javascript">
            function myFunc(id)
            {
                alert(id);
            }
        </script>
    </head>

    <body>
        <button id="button1" class="MetroBtn" onClick="myFunc(this.id);">Btn1</button>
        <button id="button2" class="MetroBtn" onClick="myFunc(this.id);">Btn2</button>
        <button id="button3" class="MetroBtn" onClick="myFunc(this.id);">Btn3</button>
        <button id="button4" class="MetroBtn" onClick="myFunc(this.id);">Btn4</button>
    </body>
</html>

函数myFunc(id)
{
警报(id);
}
Btn1
Btn2
Btn3
Btn4

对我来说,问题很简单,就是不熟悉Javascript。我试图使用双引号传递id的名称,而我本应该使用单引号。而且效果很好

这起到了作用:

validateSelectizeDropdown('#PartCondition')
这并没有:

validateSelectizeDropdown("#PartCondition")
以及功能:

    function validateSelectizeDropdown(name) {
    if ($(name).val() === "") {
         //do something
    }
}
你可以用这个

<html>
    <head>
        <title>Demo</title>
        <script>
            function passBtnID(id) {
                alert("You Pressed:  " + id);
            }
        </script>
    </head>
    <body>
        <button id="mybtn1" onclick="passBtnID('mybtn1')">Press me</button><br><br>
        <button id="mybtn2" onclick="passBtnID('mybtn2')">Press me</button>
    </body>
</html>

演示
函数passBtnID(id){
警报(“您按下:“+id”);
}
按我

按我
拿起你的小提琴,改变了一件事,成功了:@MisterBla你改变了什么?它看起来一模一样。另外,最好在这里包含代码,不要依赖第三方网站。@Yossarian,什么代码?我没有更改代码,他只是忘了在JSFIDLE中添加“no wrap”。@Sergio在我的例子中,如果我单击设置为显示id的按钮,屏幕截图:代码:在我的例子中,如果我单击设置为显示id的按钮,屏幕截图:代码:
    function validateSelectizeDropdown(name) {
    if ($(name).val() === "") {
         //do something
    }
}
<html>
    <head>
        <title>Demo</title>
        <script>
            function passBtnID(id) {
                alert("You Pressed:  " + id);
            }
        </script>
    </head>
    <body>
        <button id="mybtn1" onclick="passBtnID('mybtn1')">Press me</button><br><br>
        <button id="mybtn2" onclick="passBtnID('mybtn2')">Press me</button>
    </body>
</html>