jQuery 自动完成:根据字段中的文本更改文本样式

发布于 2024-11-30 17:22:55 字数 219 浏览 0 评论 0原文

所以我有一个集成了 jQuery 自动完成的输入。我不知道如何解释这一点。我正在尝试更改自动完成中文本的样式(如果键入),例如谷歌的自动完成功能:

在自动完成中,“stackover”比单词的其余部分更轻。

这是用于文本的 CSS: .ui-menu .ui-menu-item a

有谁知道如何做到这一点?

多谢

So I have an input which I integrated jQuery autocomplete. I don't know how to explain this. I am trying to change the style of the text in the autocomplete if is typed, something like google has for its autocomplete:

enter image description here

Note that in the autocomplete, 'stackover' is lighter than the rest of the word.

This is the CSS which is used for the text: .ui-menu .ui-menu-item a

Does anyone know how to do this?

Thanks alot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风渺 2024-12-07 17:22:55

您可以订阅 open 事件并在匹配的术语周围附加一个范围,以便您可以相应地设置其样式:

$('#q').autocomplete({
    source: ['stackoverflow', 'stackoverflow careers', 'stackoverflowerror', 'stackoverflow api', 'stackoverflow podcast'],
    open: function(e, ui) {
        var data = $(this).data('autocomplete');            
        data.menu.element.find('li').each(function() {
            var $this = $(this);
            var matched = data.term;
            var rest = $this.text().replace(matched, '');
            var template = $('<span/>', {
                'class': 'ui-found',
                'text': matched
            }).after($('<span/>', {
                'text': rest    
            }));
            $this.html(template);
        });
    }
});

这是一个 现场演示

You could subscribe for the open event and append a span around the matched term so that you could style it accordingly:

$('#q').autocomplete({
    source: ['stackoverflow', 'stackoverflow careers', 'stackoverflowerror', 'stackoverflow api', 'stackoverflow podcast'],
    open: function(e, ui) {
        var data = $(this).data('autocomplete');            
        data.menu.element.find('li').each(function() {
            var $this = $(this);
            var matched = data.term;
            var rest = $this.text().replace(matched, '');
            var template = $('<span/>', {
                'class': 'ui-found',
                'text': matched
            }).after($('<span/>', {
                'text': rest    
            }));
            $this.html(template);
        });
    }
});

Here's a live demo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文