如何在点击时获取我附加的链接文字?

时间:2014-01-20 15:47:34

标签: javascript jquery html

大家好我已经创建了自己的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/>');

3 个答案:

答案 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() );