首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Jquery中显示select选项之前,如何更新它们?

在Jquery中显示select选项之前,如何更新它们?
EN

Stack Overflow用户
提问于 2013-12-14 05:30:05
回答 3查看 278关注 0票数 0

看看下面的示例代码:

代码语言:javascript
运行
复制
<html>
<head>
    <script type="text/javascript" src="jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $("body").on('click', "#teste",function(){
          $('#teste').append('<option id="pera">pera</option>')
          $('#teste').show();
        });
      });
    </script>
</head> 
<body>
    <select id="teste">
        <option value="banana">banana</option>
        <option value="laranja">laranja</option>
    </select>

</body>

我这里的问题是,click事件仅在使用新值("pera")更新选择框之后才会显示选择框。我需要做的是首先用新值更新select,然后再显示它。有没有办法用jQuery做到这一点呢?提前谢谢,伙计们!

编辑:

好吧,让我试着解释清楚一点:每当你点击一个选择来显示选项时,它会自动显示(这很明显!)。我的问题是,我需要截取单击事件,更新select,并且仅在它显示select之后。但它会在更新前显示select (这是默认行为)。下面是正在发生的事情:

1)初始值选择: banana,laranja

2)用户点击。我想要的:显示香蕉,laranja和pera作为选项。结果:它在列表中显示了banana,laranja,只有在更新select之后才会显示它(如果我用fiebug检查html代码,pera选项就在那里!)。如果我在select中再次单击,pera选项会正常显示,正如上面的代码所说,它会在select中附加另一个pera选项,该选项仅在下一次单击时出现,依此类推。

EN

回答 3

Stack Overflow用户

发布于 2013-12-14 05:34:58

我有点困惑..。是否只想在页面加载时更新select?如果是这样的话,你可以这样做:

CSS:

代码语言:javascript
运行
复制
#teste {
  display: none;
}

JS:

代码语言:javascript
运行
复制
$(function(){
  $('#teste').append('<option id="pera">pera</option>').val("pera").show();
});
票数 2
EN

Stack Overflow用户

发布于 2013-12-14 05:35:31

我认为这可能就是您要搜索的内容:

使用值:

代码语言:javascript
运行
复制
$('[name=options]').val( 3 );//To select Blue

要重置它,请使用以下命令:

代码语言:javascript
运行
复制
$('[name=options]').val( '' );

使用文本:

代码语言:javascript
运行
复制
$('[name=options] option').filter(function() { 
    return ($(this).text() == 'Blue'); //To select Blue
}).prop('selected', true);

链接:http://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu

票数 0
EN

Stack Overflow用户

发布于 2013-12-14 05:54:49

我认为您想要防止多次显示teste选项。

代码语言:javascript
运行
复制
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<style>
#teste{
display: none;
}
</style>
    <script type="text/javascript">
        $(document).ready(function(){
$(document).click(
function(){

if(!$('#teste').is(':visible')){
$('<option/>',{
'id'        : 'pera',
'html'      : 'pera',
'selected'  : 'selected'
}).appendTo('#teste');
$('#teste').show('slow');
}
})
        });


    </script>
</head> 
<body>
    <select id="teste">
        <option value="banana">banana</option>
        <option value="laranja">laranja</option>
    </select>

</body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20576346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档