【发布时间】:2015-01-01 04:58:11
【问题描述】:
由于某些原因,将选项附加到选择标记不会选择 selected='selected' 属性选项,而是选择列表中的下一个选项。
请看上面的 jfiddle。
<select id="category">
<option value='1'>Categroy 1</option>
<option value='2'>Categroy 2</option>
<option value='3'>Categroy 3</option>
</select>
<select id="sub-category">
<option value='1' data-parentid='1'>Car1</option>
<option value='2' data-parentid='1'>Car2</option>
<option selected='selected' value='3' data-parentid='1'>Car3</option>
<option value='4' data-parentid='1'>Car4</option>
<option value='5' data-parentid='1'>Car5</option>
<option value='6' data-parentid='2'>Car6</option>
<option value='7' data-parentid='2'>Car7</option>
<option value='8' data-parentid='2'>Car8</option>
<option value='9' data-parentid='3'>Car9</option>
<option value='10' data-parentid='3'>Car10</option>
<option value='11' data-parentid='3'>Car11</option>
<option value='12' data-parentid='3'>Car12</option>
</select>
$(document).ready(function(){
var allsuboptions = $('#sub-category option').remove();
var selectedOptions = allsuboptions.filter(function () {
return $(this).data('parentid').toString() === $('#category').val().toString();
});
selectedOptions.appendTo('#sub-category');
});
在上面的示例中应该选择 Car3,但在将选项附加到选择后选择了 Car4。
【问题讨论】:
-
我刚刚检查了您分享的fiddle,它只选择了
Car3。我不明白你的问题可能是。 -
有趣的是它显示了 Car4,但是如果您检查元素并查看代码,则选择了 Car3:
<option selected="selected" value="3" data-parentid="1">Car3</option> -
你运行代码了吗?它正在选择 Car4 吗?我刚刚验证了它
-
我在您发布的 jsfiddle 中运行代码;然后,不做任何更改,右键单击下拉菜单并单击“检查元素”。 Car4 是显示的选项,但根据代码 Car3 是选择的选项
-
谁在看这个答案。 @salman 下面给出了一些很好的解释。请检查一下
标签: javascript jquery html select