无法将字符串作为函数参数Jquery传递

时间:2016-06-23 15:08:03

标签: javascript jquery string function

我从JQuery开始。当我想在函数中传递String作为参数时,有时它不会工作,我不知道为什么......

这是一个例子:

$(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";
}

在这个例子中,它可以很好地用于&#34; afficher&#34;但它不适用于&#34; tester&#34;。当我尝试单击生成的HTML时,我在参数列表&#34;之后收到错误:&#34; Uncaught SyntaxError:missing)

任何人都知道为什么?

2 个答案:

答案 0 :(得分:0)

如果在程序上下文中调用函数,则会有所不同:

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 );

答案 1 :(得分:0)

  1. Js方面:你在函数调用中丢失了字符串qoutes。
  2. Html方面:您没有转义属性值。
  3. 您的所有功能都必须是全球性的。
  4. $(document).ready(test()); - test立即执行。
  5. 整个代码很糟糕。