【问题标题】:jQuery Select Menu ReplacementjQuery选择菜单替换
【发布时间】:2010-11-16 04:48:39
【问题描述】:

我有一个选择下拉菜单,可以为用户所在的当前页面选择一个主题:

<select id="style" name="acct-stylenum"> 
    <option value="1" selected="true">Light</option>
    <option value="2">Dark</option>                   
</select>  

现在我想做的是添加两个 div 来控制这个选择菜单。我宁愿让用户在两个图像之间进行选择,而不是选择菜单。 div如下:

<div class="style-box light"></div>
<div class="style-box dark"></div>

我想使用 jQuery 来隐藏选择菜单,但仍然使用它的输入。此外,我希望 div 控制菜单值并显示选定状态。请告诉我使用 jQuery 或 JavaScript 最简单的方法。

提前致谢。

-B

【问题讨论】:

    标签: javascript jquery select html input


    【解决方案1】:

    使用这个插件:http://dev.jquery.com/browser/trunk/plugins/selectboxes 你可以这样做:

    $("#style-box-light").click(function() {
      $("#style").selectOptions("1");
    });
    

    【讨论】:

    • 你可以简单地使用 .val('1') 设置选择的值。不需要插件就可以了。
    【解决方案2】:

    如果所有图像的顺序与选择中的选项相同,则可以这样做(假设 jQuery 版本 >= 1.3 和

    $("div.style-box").live('click', function() {
    
      //get index of div clicked
      var index = $(this).prevAll().length;
    
      //select the corresponding option in the hidden select
      $('#style>option').eq(index).attr('selected', true);
    
    });
    

    【讨论】:

    • 不错。 (使用.index()api.jquery.com/index来获取被点击的div的索引会更优雅)
    • @Herb Caudill 我在 JQuery 中的索引函数不像现在这样优雅时写了这个。以前您必须将项目集合传递到索引中 - 因此 prevAll().length 是一个更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多