我希望下面的代码能够遍历select options并移除具有某个值的选项,否则将恢复select html
var initialHTML = $('#myselect').html();
$('#myselect option').each(function(){
if($(this).val() === 'b'){
$(this).remove();
console.log('matching. removed.');
return false;
}else{
$('#myselect').html(initialHTML);
console.log('not matching. html restored.');
}
});
预期的select为:
<select id="myselect">
<option value="a">a</option>
<option value="c">c</option>
</select>
但它实际上是
<select id="myselect">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
我做错了什么?FIDDLE
更新,例如,有人建议:
$('#myselect option')
构造一个选项列表,$(this).remove()
删除选项b
,但选项列表不再链接到该超文本标记语言,因为超文本标记语言已经被为选项a
执行的$('#myselect').html(initialHTML)
更改
所以,我已经意识到,实际问题甚至与我最初在问题中提出的问题无关。很抱歉,我会试着把它放在正确的部分。
附注:a working solution
var initialHTML = $('#myselect').html();
function doIt(){
$('#myselect').html(initialHTML);
$('#myselect option').each(function(){
if($(this).val() === 'b'){
$(this).remove();
}
});
}
非常感谢你的帮助。
https://stackoverflow.com/questions/50648285
复制相似问题