我开始学习 Jquery,但我无法理解函数参数:(
如果您查看我的第一个 代码并运行它:我的脚本会工作 (没有参数)。如果您查看我的第二个代码
(带参数)并运行它:第二个脚本 也可以工作!
我的第一个问题:我是否在第二个脚本中正确设置参数?
第二个问题:我怎样才能检查我的参数是设置还是正确传递到我的函数?
附言很抱歉成为 NOOB,谢谢你!!
//First code (WITHOUT PARAMETERS!!!)
$(document).ready(function () {
var addclass = $('p:first');
function AddClass() {
addclass.addClass('first');
if (addclass.is($('.first'))) {
alert('here');
}
else {
alert('not here');
}
}
$('.button').click(function () {
AddClass(addclass);
});
});
//Second code (WITH PARAMETERS)
$(document).ready(function () {
var addclass = $('p:first');
function AddClass(addclass) {
addclass.addClass('first');
if (addclass.is($('.first'))) {
alert('here');
}
else {
alert('not here');
}
}
$('.button').click(function () {
AddClass(addclass);
});
});
最佳答案
您的第二个参数是正确的,要检查传递给函数的任何参数,请使用:
arguments.length
例如:
function myfunc() {
alert( arguments.length ); //output: 1, because you passed one argument
// and to get that
var myarg = arguments[0];
}
myfunc(someVar);
如果您不传递任何参数,则:
function myfunc() {
alert( arguments.length ); //output: 0, because you passed no argument
}
myfunc();
对于您的功能:
function AddClass(addclass) {
^-- declaring addclass is not necessary if you use like following
// checking for argument
if( arguments.length ) {
// arguments[0] will give you addclass
// you may not write addclass to function like above
}
addclass.addClass('first');
if (addclass.is($('.first'))) {
alert('here');
}
else {
alert('not here');
}
}
使用addclass
参数调用函数:
$('.button').click(function () {
AddClass(addclass);
});
关于javascript - 如何在函数内部传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297218/