jQuery:如何在输入字段中插入链接文本
jQuery: How do I insert link text into input field?
我正在进行Ajax Live Search。我的目标是:当你点击其中一个建议的结果时,结果将被插入到搜索字段中。例如,当你在输入字段中输入"ros",并且你想寻找玫瑰,而玫瑰是建议你的结果时,我希望玫瑰在点击时显示在搜索字段中。
<!-- Lets assume that up to this point the user has typed "ros"
into the following field -->
<input id="search" type="text">
<!-- ... then roses is a suggested result, with "ros" being highlighted -->
<ul id="results">
<li class="result">
<a>
<b class="highlight">ros</b>"es"</p>
</a>
</ul>
以下是我迄今为止提出的jQuery代码,但它不起作用:
$('#results a').click(function() {
var selection = $(this).html();
$('#search').val(selection);
});
有人检测到错误了吗?
似乎是事件委派的情况:
$('#results').on('click', 'a', function() {
我看到的是,列表中有一些动态生成的链接,就好像用户在搜索什么一样。如果是这种情况,那么您必须将事件委托给最近的静态父级,在您的情况下是#results
,因为事件没有绑定到动态生成的元素,因为它们在绑定事件时不可用。
还有一个通知,因为您有一个</p>
的结束标记,它没有开始标记。此外,如果要放置单击的元素的文本,则不必使用.html()
,可以使用.text()
方法。
Yout HTML无效。您的<a>
标签
</p>
而没有打开的首先,我认为您不应该简单地使用$(this).html()
,因为它将包括html标记,而且您可能不希望插入这些标记。
但我认为你不能让它工作的原因(我假设绝对不会发生任何事情(是因为你在加载结果之前设置了监听器,因此它们不绑定到链接。使用$('#results').on('click', 'a', function(){})
"提前"绑定事件。
$('#results a').click(function() {
var selection = $(this).text();
$('#search').val((selection.replace("'"", "")).replace("'"", ""));
});
相关文章:
- 我可以在网页正文中插入文本链接吗
- 链接内的内容可编辑块,如何防止重定向,但让文本选择插入符号位置更改
- 我想插入要链接的输入值
- 如何在 Tinnymce 编辑器的插入链接弹出窗口中添加 rel 属性
- 在标头标记中插入脚本和链接标记
- Windows媒体编码器9插入(链接,脚本)处理
- 如何在 css 链接标签中插入 javascript 函数
- 单击链接并将隐藏字段中的文本插入输入字段超过 1 次,然后替换输入字段中的文本
- 在 textAngular 编辑器中使用角度引导模式插入链接
- 对于由 JavaScript 插入的链接,不会显示警报
- 如何在javascript中从链接插入事件时将其添加到图像中
- 从文本区域或分区在数据库中插入/显示可点击链接
- 使用JS和HTML将当前URL插入到链接中
- AngularJS的Summernote插入链接默认总是在new选项卡中打开
- 在选择标记中插入链接
- 是否有在字符串之间插入链接的方法?
- 动态插入链接内的Span标签使用Javascript
- jQuery:如何在输入字段中插入链接文本
- 颜色,插入链接和插入图像弹出不显示在wysihtml5
- 在可内容元素中插入链接