单击时在搜索输入上附加文本

时间:2015-03-16 18:13:44

标签: javascript jquery

我有很少的锚元素包含一些文字,比如“猫”,“牛”,“狗”。

当我点击“Cat”时,我想在搜索输入上附加文字。

我试过这个:

jQuery(' .link ').on('click', function(event) {
jQuery('input[name="search"]').val(jQuery('.link').text().trim());
jQuery('input[name="search"]').keyup();

});

但是我需要一种方法来监听每个锚元素并相应地更新搜索输入,现在它只能工作一次。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

问题是由点击功能中的选择器引起的,而不是将点击的元素的文本添加到搜索框中,而是编写所有元素'按顺序将文本写入搜索框,因此只有最后.link个文本保留在搜索框中。试试这个:

jQuery(' .link ').on('click', function(event) {
  jQuery('input[name="search"]').val($(this).text().trim());
  jQuery('input[name="search"]').keyup();
});

在这里Fiddle,看看你是否正在寻找。

答案 1 :(得分:0)

您尚未提供HTML,因此我将以此(stackoverflow)页面为例...

您可以根据以下内容获取文本并将其添加到您的输入属性中:document.getElementById('search').children[0].placeholder = document.getElementById('nav-tags').textContent;

实际上,你应该这样做:

<a href="" onclick="document.getElementById('search').children[0].placeholder = this.textContent;">Some animal</a>

或者,为了使其更具可读性,请创建函数并添加事件侦听器,但这是基础......