JavaScript 函数 "return this"不工作

标签 javascript jquery

我有以下函数,它只是遍历对象列表并返回正确的对象:

function findLine(textElement,caretIndex){
    jQuery.each(textElement.lines(), function() {
        if(this.startIndex <= caretIndex && this.endIndex >= caretIndex) {
            alert(this);
            return this;
        }
   });
}

当我用这个调用它时,我得到 undefined 作为返回。

line = findLine(textElement,caretIndex);
alert(line);

奇怪的是,当我运行 line = findLine(textElement,caretIndex); 时,函数内的警报被触发并返回正确的结果。所以 this 是正确的值,但是当函数外部的第二个警报被触发时,我得到 undefined

当我从函数返回值时发生了一些错误,或者与将该值分配给变量有关。我在这里做错了什么?

最佳答案

问题是您返回此是在jQuery.each方法的回调中,而您的findLine没有返回任何内容。

function findLine(textElement,caretIndex){
    return jQuery.each(textElement.lines(), function() {
        if(this.startIndex <= caretIndex && this.endIndex >= caretIndex) {
            alert(this);
            return this;
        }
   });
}

如果您返回 jQuery.each 调用,您最终会得到一个 jQuery 对象,其中包含您想要的每个 this .

关于JavaScript 函数 "return this"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228564/

相关文章:

javascript - Node.js 逐行异步操作

javascript - 如何查看表td的值?

javascript - 如何在 asp.net 中使用 JavaScript 只打印表数据元素?

javascript - 简化多个 jQuery Dialog 功能

jquery - Tomcat CORS 过滤器和 Spring Security

javascript - 重复模态显示事件

javascript - 将数组值插入 Div 框中

javascript - Dart-JS 互操作 : JS object not loading when running in Dartium

javascript - 使用AJAX : Send variables to a PHP file which generate XML from a Database

javascript - 使用 Javascript 变量作为 WP_Query 参数