【问题标题】:Get the dropdown part of jQuery autocomplete combobox获取 jQuery 自动完成组合框的下拉部分
【发布时间】:2012-07-12 01:18:52
【问题描述】:

我想获取与自动完成列表相对应的 html 元素,即当我在 jQuery 组合框的输入元素中键入时打开的下拉部分。如何使用 jQuery 获取此下拉元素?

【问题讨论】:

    标签: jquery-ui combobox jquery-autocomplete


    【解决方案1】:

    如果您在谈论 jQueryUI 自动完成,您可以使用以下方法访问 menu 的元素:

    $('autocomplete_selector').data("autocomplete").menu.element;
    

    因此,在open 事件的上下文中,您可以执行以下操作:

    $("input").autocomplete({
        open: function (event, ui) {
            // menu is a jQuery object.
            var menu = $(this).data("autocomplete").menu.element;
        }
    });
    

    示例: http://jsfiddle.net/PvgGw/


    由于input 是动态生成的,因此对于组合框小部件,您需要多做几道题:

    $("combobox_selector")
        .data("combobox")
        .wrapper
        .find("input")
        .data("autocomplete")
        .menu
        .element;
    

    【讨论】:

    • 这是否适用于 id ='abc': $('#abc').('.ui-auto-complete) 的 jQuery 组合框?
    • “jQuery 组合框”是什么意思?
    • @Andrews - jQuery-ui 中可用的自动完成组合框,如下链接:jqueryui.com/demos/autocomplete/#option-source
    • @Andrews - 我尝试了你的方法,但它不起作用: $("#combobox123").data("autocomplete").menu.element 始终为空。但是,如果我尝试 $("#combobox123").next(".ui-autocomplete") 那么我得到一个非空对象。所以你的表达可能有问题。
    • 那是因为您的选择器选择的是select 元素,而不是自动完成插件附加到下方的input。请查看我的更新。
    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多