我见过许多与我的问题标题相关的主题。
这是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>
这里有一个非常简单的JS函数:
function myFunc(id){
alert(id);
}
您可以在JsFiddle中看到。
问题是:
我不知道,也许没有将this.id
传递给myFunc
函数,或者其他问题。
有什么问题?
任何帮助都将不胜感激。
答案 0 :(得分:9)
在jsFiddle中,默认情况下,您在脚本块中键入的代码包含在window.onload上执行的函数中:
<script type='text/javascript'>//<![CDATA[
window.onload = function () {
function myFunc(id){
alert(id);
}
}
//]]>
</script>
因此,您的函数myFunc
不在全局范围内,因此您的html按钮无法使用。将选项更改为No-wrap in <head>
,因为Sergio建议您的代码不会被包裹:
<script type='text/javascript'>//<![CDATA[
function myFunc(id){
alert(id);
}
//]]>
</script>
因此该函数位于全局范围内,可供您的html按钮使用。
答案 1 :(得分:6)
选中此项:http://jsfiddle.net/h7kRt/1/,
你应该在左上方的jsfiddle中更改为No-wrap in <head>
您的代码看起来不错,它可以在普通页面内运行。在jsfiddle中,您的函数正在加载处理程序中定义,因此在不同的范围内。通过更改为No-wrap,您可以在全局范围内使用它,并可以根据需要使用它。
答案 2 :(得分:3)
这个工作:
<!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>
答案 3 :(得分:2)
你可以使用它。
<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>
答案 4 :(得分:0)
对我来说问题就像不了解Javascript一样简单。我试图使用双引号传递id的名称,当我应该使用单引号时。它工作得很好。
这有效:
validateSelectizeDropdown('#PartCondition')
这不是:
validateSelectizeDropdown("#PartCondition")
功能:
function validateSelectizeDropdown(name) {
if ($(name).val() === "") {
//do something
}
}