jQuery搜索框功能

2023-05-18 15:05:32 浏览数 (1)

在jQuery中实现搜索框功能可以通过监听输入事件,筛选匹配项,并动态更新显示结果来实现。

HTML 结构 首先,需要创建一个包含搜索框和显示搜索结果的HTML结构。

示例代码如下:

代码语言:javascript复制
<input type="text" id="searchInput" placeholder="输入关键字进行搜索">
<ul id="searchResults"></ul>

上述示例中,我们创建了一个输入框和一个无序列表来显示搜索结果。输入框使用<input>元素,并设置了一个占位符来指示用户输入的目的。搜索结果使用<ul>元素,并设置了一个ID用于后续的jQuery操作。

JavaScript 交互 要使用jQuery实现搜索框功能,需要监听输入事件,并根据输入的关键字进行筛选和显示匹配的结果。

示例代码如下:

代码语言:javascript复制
$(document).ready(function() {
  $('#searchInput').on('input', function() {
    var keyword = $(this).val().toLowerCase(); // 获取输入框的关键字并转为小写

    // 筛选匹配的结果
    var matchedItems = [];
    $('ul#searchResults li').each(function() {
      var itemText = $(this).text().toLowerCase();
      if (itemText.indexOf(keyword) !== -1) {
        matchedItems.push($(this));
      }
    });

    // 更新显示结果
    $('ul#searchResults').empty();
    if (matchedItems.length > 0) {
      $.each(matchedItems, function() {
        $('ul#searchResults').append($(this));
      });
    } else {
      $('ul#searchResults').append('<li>无匹配结果</li>');
    }
  });
});

上述示例中,我们使用on()方法监听输入框的input事件,即在用户输入时触发。在事件处理函数中,我们获取输入框的关键字并转换为小写。

然后,我们使用each()方法遍历搜索结果列表中的每一项,将每一项的文本内容转换为小写,并与关键字进行比较。如果匹配成功,将该项添加到matchedItems数组中。

接下来,我们使用empty()方法清空搜索结果列表,并根据matchedItems数组的长度进行判断。如果有匹配的结果,使用append()方法将匹配项添加到搜索结果列表中;如果没有匹配结果,添加一个表示无结果的提示项。

0 人点赞