javascript - HTML 自定义属性在 Jquery 中始终返回未定义

标签 javascript jquery html

我有如下 HTML 元素

<input type="text" id="Search" select-box-search="true" select-box-search-url="testURL" /> 

我有如下 jQuery。

 $(":input[select-box-search]").each(function () {
        $(this).autocomplete({
            source: function (request) {
                var url = $(this).attr("select-box-search-url");
                $.ajax({
                    async: false,
                    cache: false,
                    type: "POST",
                    url: url,
                    data: { "term": request.term},
                    success: function (data) {

                        }
                    }
                });
            }
        });
    });

“url”始终未定义。然而,“this”指的是正确的元素(在 Chrome 中调试时)。有什么遗漏吗?

艾伦

最佳答案

$this 在源中给出了不同的上下文:函数(请求)。因此,您需要在进入函数之前缓存元素

 $(":input[select-box-search]").each(function () {
    var $element = $(this);
    $element.autocomplete({
        source: function (request) {
            var url = $element.attr("select-box-search-url");
            $.ajax({
                async: false,
                cache: false,
                type: "POST",
                url: url,
                data: { "term": request.term},
                success: function (data) {

                    }
                }
            });
        }
    });
});

关于javascript - HTML 自定义属性在 Jquery 中始终返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35763519/

相关文章:

javascript - 如何在特定条件下显示 ng-repeat 数据 - AngularJS

javascript - 如何获取动态生成的文本框的ID?

jquery - 当浏览器宽度减小时立即隐藏导航而不是显示一瞥

javascript - 将鼠标悬停在 JavaScript 幻灯片上时暂停

javascript - 将输入类型时间转换为 firestore 的时间戳

javascript - 如何在需要使用 Rest API 进行身份验证的 jenkins 上运行作业?

javascript - 在 PHP 中增加格式化代码

javascript - Karma 中的另一个 'module is not defined'

php - 用正则表达式匹配两个标签之间的所有内容?

javascript - 宽高比全屏图像