Javascript 用JS删除选项标记

Javascript 用JS删除选项标记,javascript,jquery,ajax,Javascript,Jquery,Ajax,我生成了以下代码: <select class="generic-widget" id="auth_user_group_id" name="group_id"> <option value=""></option> <option value="2">admin</option> <option value="3">user</option> <option value="1">guest</

我生成了以下代码:

<select class="generic-widget" id="auth_user_group_id" name="group_id">
<option value=""></option>
<option value="2">admin</option>
<option value="3">user</option>
<option value="1">guest</option>
</select>

管理
用户
客人
我需要使用JS删除来宾选项,并尝试将用户选项设置为默认值

我尝试用JQuery代码删除guest选项,但失败了:

<script>
$('option').each(function(){
    if($(this).attr('value') == '1') {
        $(this).remove();
        }
    });
</script>

$('option')。每个(函数(){
if($(this).attr('value')=='1'){
$(this.remove();
}
});
关于:

$('#auth_user_group_id > option[value="1"]').remove();

只要在DOM就绪后运行代码,就可以正常工作

   // v----this handler will run after the DOM has loaded
$(function() {
    $('option').each(function(){
        if($(this).attr('value') == '1') {
            $(this).remove();
        }
    });
});
演示:


如果您的代码位于页面顶部,那么它将在元素存在之前运行。

您可以在选择器中设置值条件:

$('#auth_user_group_id option[value="1"]').remove();
然后,您可以使用
val
方法选择一个选项:

$('#auth_user_group_id').val('3');

您可以使用以下选项检查选项项的值:

$('option').each(function(){
if($(this).val() == '1') {
    $(this).remove();
    }
});

删除一个选项:

$("#auth_user_group_id option[value='1']").remove();

在我看来,这种方式更具可读性:
if($(this).val()=='1')…
@Mic:我同意,但关键是OP的代码的编写方式是正确的。所以代码本身不需要修复,但(可能)它只需要在DOM准备好后运行。@Christian_Espinoza:你是说如果你只是用上面的代码替换问题中的代码,它会突然起作用?那没有道理,。