大家好我已经创建了自己的Jquery / javascript自动完成搜索建议div。它基本上插入一个充满单词的xml字典,并使用reg exp检查与输入字符的匹配,然后用这些匹配填充div。这一切都很好,但是当我想到我的div建议框时,我根本无法改变框中的附加文本链接。当用户点击其中一个建议的链接文本时,我希望该文本显示在搜索框中,但是文本在警报中显示为空。我试过点击使用委托功能和实时功能;这允许我单击其中一个链接,但警报显示没有 - 完全空白。任何帮助都会非常感谢。
这是我的点击处理程序
$("#suggestions a").live('click', function() {
alert(this);
$("#term_search").val(this).text();
});
以及填充div的主要代码
$(data).find("word").each(function(){
$("#suggestions").show();
var text=$(this).text();
var re = new RegExp(word,"g","gi",".*");
if((text).match(re)){
$("#suggestions").append('<a>'+(text)+'</a>'+'<br/>');
答案 0 :(得分:0)
你需要这样做
$("#suggestions").live('click','a' function() {
alert(this);
$("#term_search").val($(this).text());
});
注意: 如果您使用的是较新版本的jQuery库(1.7+),那么您应该使用on
代替live
,它在1.7中弃用,在1.9中删除。
您还需要将...val(this).text();
更改为...val($(this).text());
答案 1 :(得分:0)
您是否尝试过使用
$("#term_search").val($(this).text());
也不推荐使用.live(),而是使用on()。这是你的代码应该是什么样子
$("#suggestions").on('click','a', function() {
$("#term_search").val($(this).text());
});
答案 2 :(得分:0)
这看起来不像有意义的代码。
$("#term_search").val(this).text();
可能需要更像
$("#term_search").val( $(this).text() );