jq 如何显示出来下拉框value的值

我想写这样的一个东西
有一个下拉框,当选中某个值的时候,在一个div内里显示出来当前选中的值。切换其他的下拉选项时,div里的值也会改变。

这是我的代码,但是无法实现。请问哪里错了?

<body>
    <script src="http://keleyi.com/keleyi/pmedia/jquery-1.9.1.min.js"></script>

<select id="s">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</select>
<div id="k"></div>

    <script type="text/javascript">
        $('#k').on('change', function()
{
    document.write($("#s").val());
    
});
    </script>
</body>value值
我想在div#k中显示当前选中的下拉选项

请问哪里错了

阅读 4.8k
7 个回答
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://keleyi.com/keleyi/pmedia/jquery-1.9.1.min.js"></script>
    <script>
    $(document).ready(function(){
        $('#s').on('change', function(){
            $("#k").text($("#s").val())
        })
    })
    </script>
</head>
<body>
    <select id="s">
        <option value="1">Option 1</option>
        <option value="2">Option 2</option>
        <option value="3">Option 3</option>
        <option value="4">Option 4</option>
    </select>
    
    <div id="k"></div>
</body>
</html>

你的逻辑性已经出神入化了!
要去s变化的值你把事件绑定到k身上?

要用each 然后让每个option绑定事件。这样才会有效果。

<script type="text/javascript">

    $('#s').each(function (i, j){
        
        $(j).click(function(){
            value = $(j).val();
            $("#k").text(value);
        })
    })
    
</script>

试试这个:

$('#s').change(function(){
  $('#k').text($(this).find(':selected').text());
});

s改变时k的文本变成s当前选中项的文本。
手机码字,不详见谅!

`$(function(){$('#s').on('change',function(){
$('#s :checked').val();
});})`

原生select不就能实现吗

事件的发生是在下拉列表元素上,因此事件就需要绑定在下拉列表元素上,而显示数据的元素是被动。逻辑的先后顺序弄反了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏