Jquery传递以参数作为函数参数的Jquery方法

Jquery传递以参数作为函数参数的Jquery方法,jquery,Jquery,我想知道是否以及如何将jquery命令作为函数的参数传递 var childs = ["#foo", "#bar"]; loopTheChilds("trigger('change')"); loopTheChilds("prop( 'disabled', true )"); var loopTheChilds = function ( operation ) { $.each ( childs, function ( idx, val ) { $( val )[

我想知道是否以及如何将jquery命令作为函数的参数传递

var childs = ["#foo", "#bar"];

loopTheChilds("trigger('change')");

loopTheChilds("prop( 'disabled', true )");

var loopTheChilds = function ( operation ) {

    $.each ( childs, function ( idx, val ) {
        $( val )[operation]();
    });

}
我的目标是得到这个

$( "#foo" ).trigger("change");
$( "#bar" ).trigger("change");

// or

$( "#foo" ).prop( 'disabled', true );
$( "#bar" ).prop( 'disabled', true );
或者知道如何以任何其他方式获得相同的结果


谢谢

除非您使用eval,否则您无法告诉javascript要以字符串形式执行哪些代码,但正如注释中所述,这不是很安全,通常不推荐使用。但是,您可以做的是使loopTheChilds方法将函数作为参数,并且该函数具有一个引用元素的参数

所以你最终可能会这样做:

var childs = ["#foo", "#bar"];

loopTheChilds(function(elem) {
    elem.trigger('change');
});

loopTheChilds(function(elem) {
    elem.prop('disabled', true);
});

function loopTheChilds(func) {
    $.each(childs, function(idx, elemName) {
        func($(elemName)); //wrap in jquery selector
    });
}
现在,您只需在调用loopTheChilds方法时传递要执行的函数


这里的工作演示:

使用eval是可能的,但使用eval被认为是不好的做法。这并不是我所想的,但在我看来是一个很好的解决方案。非常感谢。