jQuery选择选项代码效率

jQuery选择选项代码效率,jquery,Jquery,我有一个选择下拉列表,我想用一个单独的隐藏输入字段中的值预填充它 示例:一个人来到一个具有设置的隐藏输入值的窗体-如果该值与下拉列表中的值匹配,则选择该选项 下面的代码工作得很好,但我很好奇是否可以缩短/提高效率?比如变量?所以我不必重复每个选项?如果有一个大的下拉列表,比如有50个选项和值的州,这会很方便。我还在学习…谢谢!我希望我的问题是清楚的 $(document).ready(function () { "use strict"; if ($("input[name='J

我有一个选择下拉列表,我想用一个单独的隐藏输入字段中的值预填充它

示例:一个人来到一个具有设置的隐藏输入值的窗体-如果该值与下拉列表中的值匹配,则选择该选项

下面的代码工作得很好,但我很好奇是否可以缩短/提高效率?比如变量?所以我不必重复每个选项?如果有一个大的下拉列表,比如有50个选项和值的州,这会很方便。我还在学习…谢谢!我希望我的问题是清楚的

$(document).ready(function () {
    "use strict";
    if ($("input[name='Job Title']").val() === "Job 1") {
        $("#job_title option[value='Job 1']").prop("selected", true);
    }
    else if ($("input[name='Job Title']").val() === "Job 2") {
        $("#job_title option[value='Job 2']").prop("selected", true);
    }
    else if ($("input[name='Job Title']").val() === "Job 3") {
        $("#job_title option[value='Job 3']").prop("selected", true);
    }
    else if ($("input[name='Job Title']").val() === "Job 4") {
        $("#job_title option[value='Job 4']").prop("selected", true);
    }
});
代码笔


更新:当我第一次问这个问题时,“效率更高”是关于代码长度的——为了得到相同的结果,我必须减少代码长度。关于运行代码的时间(用户体验),我没有想到“更高效”。虽然我使用这段代码是为了一个非常简单的4个下拉列表,其中时间不是一个考虑因素…在更广泛的范围内,例如,如果这个表单将增长到几十个或数百个下拉列表,我认为时间/用户体验应该是主要目标。这就是我选择下面答案的原因。

只需设置
选择的值即可。将自动选择具有该值的选项

 $("#job_title option[value='" + $("input[name='Job Title']").val() + "']")
 .prop("selected", true);
$("#job_title").val($("input[name='Job Title']").val());

只需设置
选择的值
。将自动选择具有该值的选项

$("#job_title").val($("input[name='Job Title']").val());

天哪,太快了。我理解你所做的。谢谢天哪,太快了。我理解你所做的。谢谢这是一种比所选答案更有效的方法。@RoryMcCrossan参见
选项:2.492ms
选择:3.331ms
@guest271314小于一毫秒的差异可以忽略不计。@Barmar是的,同意。并没有用时间概念发布方法,而是减少了为执行任务而编写的实际文本。您的方法使用较少的实际书面文本来实现需求。创建plnkr是为了验证或了解“这是一种更有效的方法”的方式@guest271314我不知道也不在乎。如果我担心CPU效率的微小差异,我不会首先使用jQuery,而是调用低级Javascript函数。这是一种比所选答案更有效的方法。@RoryMcCrossan请参见
选项:2.492ms
选择:3.331ms
@guest271314小于一毫秒的差可以忽略不计。@Barmar是的,同意。并没有用时间概念发布方法,而是减少了为执行任务而编写的实际文本。您的方法使用较少的实际书面文本来实现需求。创建plnkr是为了验证或了解“这是一种更有效的方法”的方式@guest271314我不知道也不在乎。如果我担心CPU效率上的微小差异,我不会首先使用jQuery,而是调用低级Javascript函数。