我目前在一个存储在函数中的数组中存储了一些jQuery片段。一旦我从我的代码库调用该函数,就会执行每个jQuery代码段。因此,阻止我通过阵列。
以下代码是一个示例:
var remove = [
jQuery("#mesh option:selected").removeAttr("selected"),
jQuery("#pipetype option:selected").removeAttr("selected"),
jQuery("#caboption option:selected").removeAttr("selected"),
jQuery("#bedsize option:selected").removeAttr("selected"),
jQuery("#model option:selected").removeAttr("selected"),
jQuery("#year option:selected").removeAttr("selected"),
];
for (var i = 0; i <= amount; i++) {
remove[i];
}
我怎样才能确保在调用deselect()
时,只有少数数组元素被执行而不是全部执行?
谢谢!
答案 0 :(得分:5)
你做错了。数组元素在您声明为self时执行。
而不是你可以做的一切
var remove = [ "mesh","pipetype", "caboption","bedsize", "model","year"];
for (var i = 0; i <= amount; i++) {
jQuery("#"+remove[i]+" option:selected").removeAttr("selected"),
}
如果除此之外没有任何其他选择框,您也可以简单地执行
$("select option").prop("selected", false);
答案 1 :(得分:3)
如果您不希望立即执行它们,请将其设为一个函数数组,并使用()
在循环中调用它们。
var remove = [
() => jQuery("#mesh option:selected").removeAttr("selected"),
() => jQuery("#pipetype option:selected").removeAttr("selected"),
() => jQuery("#caboption option:selected").removeAttr("selected"),
() => jQuery("#bedsize option:selected").removeAttr("selected"),
() => jQuery("#model option:selected").removeAttr("selected"),
() => jQuery("#year option:selected").removeAttr("selected"),
];
for (var i = 0; i <= amount; i++) {
remove[i]();
}