每次调用函数

时间:2017-08-25 08:48:13

标签: javascript jquery arrays

我目前在一个存储在函数中的数组中存储了一些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()时,只有少数数组元素被执行而不是全部执行?

谢谢!

2 个答案:

答案 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]();
}