单击下拉列表 - JQuery更改文本值

时间:2013-10-28 11:15:57

标签: jquery

http://jsfiddle.net/ZbcVH/1/

HTML

<div id="locationselect"><ul><li>United Kingdom</li><li>France</li><li>Germany</li></ul></div>
<input tpye="text" id="location" />

Jquery的

$('#locationselect').click(function() {
    $('#location').html($(this).val());
});

如上面的链接所示,我基本上想要从无序列表项中选择值 id =“locationselect”,然后将所选列表项的值放入 id = “位置”文本框。我不太确定我哪里出错了。

我确信这很简单。我试过看其他问题来帮忙,但似乎没有点击。

感谢您的帮助!

4 个答案:

答案 0 :(得分:0)

您需要使用.text代替.val来检索值.val而不是.html来设置值,并且您需要绑定到li而不是父{ {1}}:

div

答案 1 :(得分:0)

试试这段代码。在输入中,使用val()更改值。并获得text()

jsFiddle here

$('document').ready(function(){
    $('#locationselect li').click(function() {
        $('#location').val($(this).text());
    });
});

.on

$('document').ready(function(){
    $('#locationselect li').on('click',function() {
        $('#location').val($(this).text());
    });
});

答案 2 :(得分:0)

将监听器放在li元素本身上,然后从中获取text

试试这个解决方案:

<div id="locationselect"><ul><li>United Kingdom</li><li>France</li><li>Germany</li></ul></div>
<input tpye="text" id="location" />

$('#locationselect li').click(function() {
    $('#location').val($(this).text());
});

请参阅更新的 JSFiddle http://jsfiddle.net/WYUSn/

答案 3 :(得分:0)

http://jsfiddle.net/ZbcVH/8/可以看出,有两个mein错误:

您需要使用li代替#locationselect,而应使用.text()代替.val()