Jquery传递以参数作为函数参数的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 )[
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被认为是不好的做法。这并不是我所想的,但在我看来是一个很好的解决方案。非常感谢。