使用javascript变量设置下拉列表的选定值
我正在使用JQuery创建动态下拉框(在第二个下拉框中选择第一个下拉过滤器选项)。我正在尝试为一个反向用例创建一个检查(选择第二个下拉列表将强制第一个下拉列表中的相关选择) 我以前曾使用此代码成功设置活动值:使用javascript变量设置下拉列表的选定值,javascript,jquery,html,html-select,Javascript,Jquery,Html,Html Select,我正在使用JQuery创建动态下拉框(在第二个下拉框中选择第一个下拉过滤器选项)。我正在尝试为一个反向用例创建一个检查(选择第二个下拉列表将强制第一个下拉列表中的相关选择) 我以前曾使用此代码成功设置活动值: $("#department option[value='Other']").prop('selected', true); 现在,我正在尝试做与上面相同的事情,但是使用变量值而不是硬编码值。这是我目前掌握的代码: var selected_campus = $("#college")[
$("#department option[value='Other']").prop('selected', true);
现在,我正在尝试做与上面相同的事情,但是使用变量值而不是硬编码值。这是我目前掌握的代码:
var selected_campus = $("#college")[0].options[$("#college")[0].selectedIndex].text.split(":",1).toString();
$("#campus option[value=selected_campus]").prop('selected', true);
第一行工作正常,所需值成功存储在
selected\u
中。但是,第二行没有。如何将#campus
的选定值设置为选定的#campus
?您已经接近了;您只需使用+
和单引号'
符号将所选变量与选择器(字符串)连接起来,如:
$("#campus option[value='"+selected_campus+"']").prop('selected', true);
________________________^_^_______________^_^
而不是:
$("#campus option[value=selected_campus]").prop('selected', true);
希望这有帮助。您需要将变量替换为代码:
$("#campus option[value='" + selected_campus + "']").prop('selected', true);
如果值中有空格或其他字符,则需要使用单引号注意split
返回一个数组,并将该数组强制为字符串。它起作用的唯一原因是,您添加了一个限制,因此始终可以在数组中获得单个项,并且字符串化该数组会返回预期的结果。我认为像split(':').shift()这样的东西是更好的选择?使用一些数据属性来识别选项会更好。@adeneo感谢您的反馈。我还是个新手,所以我没有意识到shift(),它似乎正是我所需要的!这整条线路看起来很不确定,可能有更好的方法将选项绑定到某种系统中