javascript - 如何获取 HTML 中的文本和 href 值,然后将它们设置为 JQuery UI 自动完成中的值和标签

标签 javascript jquery autocomplete jquery-autocomplete jquery-ui-autocomplete

目前我明白了

JS

$(function() {
$("#nav-list123").fadeOut();
$('input').autocomplete({
    source: function(req, response) {
        var re = $.ui.autocomplete.escapeRegex(req.term);
        var matcher = new RegExp( "^" + re, "i" );
        var sources = $('.search').select ('li'); 
        response($.grep(sources.text(), function(item){return matcher.test(item.label); }) );
    },
    select: function(event, ui) {
        $('#state_id').val(ui.item.label);
        $('#abbrev').val(ui.item.value);
    }
});});

在此 html 中

<div><form class="form-search"><input id="autocomplete" type="text"/></form>
<div id="nav-list123">                   
    <ul class="search">
    <li><a href="/order_gen/address/1/">  Kitchen Visions</a></li>
    <li><a href="/order_gen/address/4/">  Full Name</a></li>
    <li><a href="/order_gen/address/23/">  Job B</a></li>
    </ul>
</div>

我想获取 <li> 中的元素属性,我尝试使用 .text().html()获取文本,但我不知道如何将这些属性转换为 JQuery UI 自动完成函数中的标签和值以获取匹配元素。

有人可以帮助我吗?谢谢

最佳答案

您应该在页面加载时将 ul li 的值和 href 存储到 JavaScript 数组中
& 在自动完成源中传递此数组

var arr = new Array();
$('ul > li').each(function(){
var temp_obj = {
标签:$(this).children('a').attr('href'),
值:$(this).children('a').text().trim()
}
arr.push(temp_obj);
});

//在自动完成源中传递此数组
$('输入').autocomplete({
焦点:函数(事件,ui){
$( "#your_id").val( ui.item.value );
返回错误;
},
来源:arr
});

关于javascript - 如何获取 HTML 中的文本和 href 值,然后将它们设置为 JQuery UI 自动完成中的值和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610009/

相关文章:

elasticsearch - 当输入部分单词时,elasticsearch不返回文本

php - 为数组设置多个键和值

javascript - 事件冒泡是如何作用于事件处理的?

php - 返回 PHP 值到页面

jquery - 当表单被动态添加到 DOM 时,检测 jQuery 中的表单提交

javascript - 无网络连接时10分钟后再次执行JavaScript

c# - ASP.NET 中的自动填充文本框取决于在另一个文本框中键入的文本

javascript - 通过单击多选框中的项目添加到 HTML 文本字段

c# - 您如何将其他编程语言嵌入到您的代码中?

javascript - 如何读取具有部分选定子节点的父节点