gpt4 book ai didi

javascript - jQuery窗口 'hashchange' switch语句效率

转载 作者:行者123 更新时间:2023-11-30 17:44:30 25 4
gpt4 key购买 nike

我在基于 URL 散列中的值的 jQuery 多选控件中显示“选择”的项目。例如,

http://localhost/index#options=2,3,4

根据 url hashQuery 在多选控件中呈现项目 2、3 和 4“已选择”。我的问题是如何定义窗口“hashchange”事件,这样我就不必考虑所有可能的值组合来确定要显示的内容。例如,这是我已经开始的以及我想避免的,因为它效率不高

 $(window).on('hashchange');
if (hashQuery.option) {
switch (hashQuery.option) {
case '1':
$("#options option[value='1']").attr("selected", "selected");
break;
case '1,2':
$("#options option[value='1']").attr("selected", "selected");
$("#options option[value='2']").attr("selected", "selected");
break;
case '1,2,3':
$("#options option[value='1']").attr("selected", "selected");
$("#options option[value='2']").attr("selected", "selected");
$("#options option[value='3']").attr("selected", "selected");
break;
default:
//
}
}

如何才能提高效率并达到同样的效果?如果您有任何问题,请告诉我。

最佳答案

您有一个选项值列表,因此将其视为选项值列表。将它变成一个数组,然后您可以简单地遍历该数组并为每个值选择选项。

$(window).on('hashchange', function() {
var values = hashQuery.option.split(',');
// values is now an array like ['1', '2', '3']

// so just loop through it
var selector;
for (i = 0; i < values.length; i++) {
selector = "#options option[value='"+ values[i] +"']";
$(selector).attr('selected', 'selected');
}
};

这与效率(代码的执行速度)无关。事实上,使用循环可能会使它稍微慢一些。它只是让干净的代码在您添加更多选项时做正确的事情。

关于javascript - jQuery窗口 'hashchange' switch语句效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20381804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com