javascript - 如何将 HTML 无序列表转换为 jQuery 自动完成?

标签 javascript jquery html arrays autocomplete

我在页面上有一个很长的无序列表。看起来像这样

<ul>
  <li>
    <a href="http://www.google.com">
      Google
    </a>
  </li>
  <li>
    <a href="http://www.yahoo.com">
      Yahoo
    </a>
  </li>
</ul>

与其显示链接列表,我更愿意将其显示为 jQuery 自动完成,其中键入“Ya”将显示单词“Yahoo”,单击时(或按“Enter”后)将带您到它的 href .

有什么方法可以获取这个动态变化列表的内容并将其显示为自动完成吗?

最佳答案

假设您使用的是 jQuery UI ,

第 1 步 - 为自动完成添加文本输入:

<input type="text" id="search" />

第 2 步 - 将您的 DOM 转换为链接列表:

var items = [];

$('ul li a').each(function () {
    items.push({ 
        value: $(this).attr('href'),
        label: $(this).text()
    });
});

$('ul').remove();

第 3 步 - 打开自动完成:

$("#search").autocomplete({
    source: items,
    select: function (event, ui) { 
        window.location.href = ui.item.value;
    }
});

关于javascript - 如何将 HTML 无序列表转换为 jQuery 自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22134168/

相关文章:

javascript - 如何在鼠标悬停时暂停 .scrollTop() 动画? (包括 jsfiddle)

jquery - 在jquery中获取文件输入值

javascript - 在 DIV 上重叠 UL 标签

javascript - 如何在 HTML 中为价格添加自动点?

javascript - fullPage.js 仅显示第一页 - 隐藏除第一页之外的所有页面。为什么?

javascript - Nock 不会拦截对第 3 方的调用

javascript - JQuery隐藏/显示最接近的div

php - 在 SQL 语句/查询中使用 jQuery 变量

javascript - 为什么我的代码没有将所有内容绘制到 Canvas 上?

javascript - 如何在 ember-cli 中加载外部脚本