JQuery - 获取调用元素 id

标签 jquery autocomplete

问题

在自动完成的源函数中,我想获取选择器的 ID。有没有办法可以遍历调用堆栈并得到这个? JQuery 有这种抽象级别吗?

为什么?

我将在页面上有多个自动完成功能,并且每个自动完成功能将在服务器端以不同的方式处理。我必须使用另一个函数作为源。否则我会使用 URL + 数据:很久以前 =p

JQuery 版本

jquery-1.9.1

研究

当然,我一直在关注这个: JQuery API

How to get element Id from dynamically generated form elements with jquery?

我认为很多尝试都行不通,但现在我正处于反复试验的阶段。

$(this).attr('id'); - 未定义

Caller function name

我虽然尝试获取调用者函数名称,并用它做一些事情...似乎没有输出任何内容。

附加到源函数(这太荒谬了!!!将文本附加到函数?!真的我很绝望......)

 $("#inPdVehMk").autocomplete({
            source: autoCompletePost + "field="+$(this).attr('id'),
            minLength: 2,
            select: function(event, ui){
                alert(ui.label1);
                alert("value= " + ui.item.value + " id= "+ ui.item.id);
            }
        });

自动完成设置

    $("#inPdVehMk").autocomplete({
        source: autoCompletePost,
        minLength: 2,
        select: function(event, ui){
            alert(ui.label1);
            alert("value= " + ui.item.value + " id= "+ ui.item.id);
        }
    });

源函数

function autoCompletePost(request, response){
    //alert($(this).attr('id')); //this is where I'm testing to see the ids.
    $.post(AjaxPageAutoComplete, { searchTerm: request.term, field: 'inPdVehMk'}, //I want field to be dynamic depending on the calling selector.
        function(data) {
            var splitData = data.split("%");
            var json = jQuery.parseJSON(splitData[1].toString());

            if(data.search('autoCompleteError') !== -1 || data.length < 1){
                DialogBox('Div_ErrorMessage^Open^autoCompleteError');
            }else{
                response(json);
            }
        }
    );
}

最佳答案

我很尴尬我花了这么长时间才弄清楚这一点。

在源函数中使用此行来获取自动完成的 ID。

$(this.element).prop("id")

由于自动完成是一个 jquery 小部件,因此 this 对象引用 widget 实例。要获取该元素,您需要遍历它的 element 属性。

JSFiddle

公平地说,除非您使用 Widget Factory 创建小部件,否则这并没有很好的记录。 .

关于JQuery - 获取调用元素 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507846/

相关文章:

javascript - 如何在 jquery 的 ajax 自动完成中编辑此代码

javascript - 当用户设置另一个选择值时,如何通过Javascript设置一个选择值?

javascript - 从 onchange 属性调用 javascript 类函数

javascript - 语法错误: Unexpected token < in JSON at position 8

javascript - jQuery 自动完成不适用于克隆

jquery - 为什么我无法让 datepicker 处理此 TypeError : o is undefined error?

javascript - 添加行时自动完成功能不起作用

python - 对于新安装的模块,如何让 `ipython` import autocomplete 起作用?

php - 自动补全多个无序词

java - 使用 Selenium webdriver 测试自动完成