显示未捕获的类型错误:无法将属性“selected”设置为 null
2017-12-22
5426
Showing Uncaught TypeError: Cannot set property 'selected' of null
<select id="sorter" class="sorter-options">
<option value="name">Product Name </option>
<option value="price">Price</option>
<option value="sort_by">Scale</option>
</select>
<script type="text/javascript">
var val = '';
document.querySelector('#sorter [value="' + val + '"]').selected = true;
</script>
2个回答
val
是空字符串,而此代码段中没有
option
具有空字符串作为值。请创建一个值为空字符串的选项,或将
option
的预定义值设置为
val
var val = 'price';
document.querySelector('#sorter [value="' + val + '"]').selected = true;
<select id="sorter" class="sorter-options">
<option value="name">Product Name </option>
<option value="price">Price</option>
<option value="sort_by">Scale</option>
</select>
brk
2017-12-22
您没有选项
val=''
,因此选择器返回预期的 null。
您可以根据需要添加默认的空选项
<select id="sorter" class="sorter-options">
<option value="">Select options</option>
<option value="name">Product Name </option>
<option value="price">Price</option>
<option value="sort_by">Scale</option>
</select>
<script type="text/javascript">
var val = '';
document.querySelector('#sorter [value="' + val + '"]').selected = true;
</script>
或者将值设置为可用选项
var val = 'price';
document.querySelector('#sorter [value="' + val + '"]').selected = true;
或者在检查选定值之前检查是否存在。
var val = '';
document.querySelector('#sorter [value="' + val + '"]') !== null? document.querySelector('#sorter [value="' + val + '"]').selected = true: null;
或者如果您只是希望设置默认值,请在选择时使用 defaultValue
<select id="sorter" class="sorter-options" defaultValue="price">
Shubham Khatri
2017-12-22