Javascript:刷新选择框

Javascript:刷新选择框,javascript,jquery,Javascript,Jquery,这是我的HTML <select id="v-1" class="form-control input-sm"> <option value="624">Video 1</option> <option value="625">Video 2</option> <option value="626">Video 3</option> <option value="627"&g

这是我的HTML

<select id="v-1" class="form-control input-sm">
    <option value="624">Video 1</option>
    <option value="625">Video 2</option>
    <option value="626">Video 3</option>
    <option value="627">Video 4</option>
    <option value="628">Video 5</option>
    <option value="629">Video 6</option>
    <option value="630">Video 7</option>
</select>
在我的javascript文件中,我有一个函数,它通过添加style=display:none删除了一些选项;添加到选项标记。例如:

<select id="v-1" class="form-control input-sm">
    <option value="624" style="display: none;">Video 1</option>
    <option value="625" style="display: none;">Video 2</option>
    <option value="626">Video 3</option>
    <option value="627" style="display: none;">Video 4</option>
    <option value="628">Video 5</option>
    <option value="629">Video 6</option>
    <option value="630" style="display: none;">Video 7</option>
</select>

但是当我调用$v-1.val时,结果是624。我希望结果是626或第一个没有样式的选项,display:none。

您可能可以:

jQuery("#v-1").find("option:visible:selected").val();
获取所选选项的值并显示。 如果只想获取第一个可见选项的值,可以执行以下操作:

jQuery("#v-1").find("option:visible:eq(0)").val();
试试这个

$("#v-1 option").each(function()
{
    if($(this).is(':visible')){
        alert($(this).val());
        return false;
    }
});
使用上述代码是否有帮助并不重要。无论如何显示:none不会隐藏Macintosh计算机中的选项项

相反,我建议从select中删除元素,并在需要时动态包含它。

尝试以下操作: $选项:不:checked.val

使用disable而不是style=display:none;由你选择

Html-

产出:626


以下是FIDLE

将选项的显示样式设置为“无”不会更改select的值或第一个没有样式的选项“显示:无”。不考虑用户选择?
$("#v-1 option").each(function()
{
    if($(this).is(':visible')){
        alert($(this).val());
        return false;
    }
});
<select id="v-1" class="form-control input-sm">
    <option value="624" disabled="disabled" >Video 1</option>
    <option value="625" disabled="disabled">Video 2</option>
    <option value="626">Video 3</option>
    <option value="627" disabled="disabled">Video 4</option>
    <option value="628">Video 5</option>
    <option value="629">Video 6</option>
    <option value="630" disabled="disabled">Video 7</option>
</select>
$(document).ready(function(){
alert($("#v-1").val());
})