【问题标题】:Dynamically call jQuery function动态调用jQuery函数
【发布时间】:2011-10-26 11:03:32
【问题描述】:

我想这样做:

var todo = "text";

$this.eval(todo).split(/\b[\s,\.-:;]*/).length;

所以这将是结果函数:

$this.text().split(/\b[\s,\.-:;]*/).length;

我想不通...我该怎么做?

【问题讨论】:

标签: javascript jquery


【解决方案1】:
var todo = 'text';
$this[todo]().split(/\b[\s,\.-:;]*/).length;

【讨论】:

    【解决方案2】:

    如果你必须让它完全动态,那么你可以简单地将它全部放在一个字符串中,然后 eval() 它。像这样的:

    var obj_name = "text";
    var eval_code = "$this."+ obj_name + "(todo).split(/\\b[\\s,\\.-:;]*/).length;";
    var result = eval(eval_code);
    

    另外,不要将变量命名为 eval 以避免与 eval 函数发生冲突。

    希望有帮助!

    【讨论】:

    • eval 在这里没有必要。
    • 我完全同意。但是,原始发帖人询问是否将变量用作代码行的一部分。这就是为什么我说“如果你必须让它完全动态”。这不是正确的,甚至不是好的解决方案,但它回答了他将变量嵌入到代码块中的问题。但是,是的,应该澄清的是,这甚至不是一个有效的解决方案。
    猜你喜欢
    • 2015-04-04
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多