Javascript 无法将字符串作为函数参数Jquery传递
我从JQuery开始。当我想在函数中传递一个字符串作为参数时,有时它不起作用,我不知道为什么 这是一个例子:Javascript 无法将字符串作为函数参数Jquery传递,javascript,jquery,string,function,Javascript,Jquery,String,Function,我从JQuery开始。当我想在函数中传递一个字符串作为参数时,有时它不起作用,我不知道为什么 这是一个例子: $(document).ready(test()); function test() { $('path[secteur]').each(function () { if ($(this).attr('id') == ("23C01")) { id = ($(this).attr('id')); afficher(
$(document).ready(test());
function test() {
$('path[secteur]').each(function () {
if ($(this).attr('id') == ("23C01")) {
id = ($(this).attr('id'));
afficher(id);
}
})
}
function afficher(mo) {
document.getElementById("test").innerHTML = "<p id=" + mot + " onclick='tester(" + mot + ")'> step 1</p>";
}
function tester(verbe) {
document.getElementById(verbe).innerHTML = "step 2";
}
$(document).ready(test());
功能测试(){
$('path[secteur]')。每个(函数(){
if($(this.attr('id')==('23C01')){
id=($(this.attr('id'));
宣誓人(身份证);
}
})
}
函数附加器(mo){
document.getElementById(“test”).innerHTML=“”;
}
功能测试仪(verbe){
document.getElementById(verbe.innerHTML=“步骤2”;
}
在本例中,它对“afficher”很好,但对“tester”不起作用。当我尝试单击生成的HTML时,我得到一个错误:“uncaughtsyntaxerror:missing)after参数列表”
有人知道原因吗?如果在程序上下文中调用函数,则会有不同:
var test = 2;
test++;
test = domymath( test );
alert( test );
或者,如果通过回调函数调用函数:
var test = 2;
test++;
test = domymath( test, alert );
如果在程序上下文中调用函数,则可以将()
中的参数/值传递给函数,但如果将函数作为回调调用,则无法传递这些参数/值。因为对于回调函数,您只定义应该调用的函数的名称 因此,在您的情况下,请使用:
$(document).ready( test );
// calls test();
$(document).ready( function () {
test( one, two );
});
// calls test( one, two );
如果在程序上下文中调用函数,则会有差异:
var test = 2;
test++;
test = domymath( test );
alert( test );
或者,如果通过回调函数调用函数:
var test = 2;
test++;
test = domymath( test, alert );
如果在程序上下文中调用函数,则可以将()
中的参数/值传递给函数,但如果将函数作为回调调用,则无法传递这些参数/值。因为对于回调函数,您只定义应该调用的函数的名称 因此,在您的情况下,请使用:
$(document).ready( test );
// calls test();
$(document).ready( function () {
test( one, two );
});
// calls test( one, two );
$(document).ready(test())代码>-测试
立即执行
$(document).ready(test())代码>-测试
立即执行
而且整个代码都很糟糕。从
$(文档)中删除大括号()
代码>。使用$(文档).ready(测试)
您对afficher()
的声明调用参数mo
,但代码调用它mot
。此代码似乎有很多错误。例如,您从未定义变量mot
。您还在文档的ready事件(参见@Tushar的注释)之前执行test()
,因此当您调用afficher(id)
时,id
值中可能没有任何内容。至于错误本身,产生它的确切代码行是什么?您正在使用嵌入式JavaScript动态添加HTML。如果嵌入的JavaScript格式不正确,请查看它并了解其原因。@Pointy说了什么,您可能需要在作为字符串传递的参数中添加引号(可能是“+mo+”.NB:$(this.attr('id'))之前和之后的转义引号)===this.id
,但后者不需要函数调用,而不是jQuery在后台为前者调用的两个可见函数和多个函数。从$(document).ready(test());
中删除括号$(document).ready(test);
您对词缀()的声明
调用参数mo
,但代码调用它mot
。这段代码似乎有很多错误。例如,您从未定义变量mot
。您还在文档就绪事件之前执行test(),因此当您调用afficher(id)时
该id
值中可能没有任何内容。至于错误本身,产生错误的确切代码行是什么?您正在使用嵌入的JavaScript动态添加HTML。如果该嵌入的JavaScript格式不正确,请查看它并了解其形式可能不正确的原因。@Pointy说了什么,您可能需要在t中添加引号作为字符串传递的参数(可以是“+mo+.”前后的转义引号。NB:$(this).attr('id')==this.id
),但后者不需要函数调用,而需要jQuery在后台为前者调用两个可见的函数和多个函数。