我正在尝试预先填充包含选择菜单的表单,使用JSON,我使用密钥作为选择菜单的#id标签 但我似乎无法让它工作我尝试了不同的选择器,但仍然没有运气,
这是我的代码
$(document).ready(function () {
var p = {
"weight":"39",
"height":"1.24",
"age":"34"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
if ($("#" + key + " option [value=" + p[key] + "]").length) {
$("#" + key + " option [value=" + p[key] + "]").attr('selected', 'selected');
}
}
}
});
<select id="age">
<option value="33">33</option>
<option value="34">34</option>
</select>
<select id="height">
<option value="1.25">1.25</option>
<option value="1.24">1.24</option>
</select>
<select id="weight">
<option value="38">38</option>
<option value="39">39</option>
</select>
答案 0 :(得分:2)
删除“option”和“[value = ...” - 空格表示“此元素的子元素”之间的空格。
$('option [value="123"]')
匹配(例如)<option><label value="123">...
$('option[value="123"]')
匹配<option value="123">
答案 1 :(得分:1)
答案 2 :(得分:0)
<强> CHECK FIDDLE 强>
我在代码中看到两个错误。一个是删除
之间的空格option[value
^
No space here
接下来是为您的值添加引号..
if ($("#" + key + " option[value='" + p[key] + "']").length) {
$("#" + key + " option[value='" + p[key] + "']").attr('selected', 'selected');
在单引号中包含您的值
您的值不是option[value=1.24]
It should be `option[value='1.24']`
^ ^
Missing Quotes here