Javascript - 将函数分配给变量无法按预期工作

标签 javascript jquery

当我尝试从函数返回对象并将其分配给 smalls 变量时,变量 smalls 为空,因为它的长度返回为 0。

var smalls = function(){
        var table = $("#box-table-a");
        return table.find("small");
    }, smallContent;
    for(var i = 0; i<smalls.length; i++){
        smallContent = smalls[i].innerHTML;
        smalls[i].parentElement.className += "relative";
        smalls[i].className += "form-absolute-right";
        smalls[i].innerHTML = "<span class='bubble'>" + smallContent + "<span>";
    }

虽然这有效并且变量 smalls 具有所需的长度。

    var table = $("#box-table-a");
    var smalls = table.find("small");       //fetch the tr's with <small> tag
    var smallContent;
    for(var i = 0; i<smalls.length; i++){
        smallContent = smalls[i].innerHTML;
        smalls[i].parentElement.className += "relative";
        smalls[i].className += "form-absolute-right";
        smalls[i].innerHTML = "<span class='bubble'>" + smallContent + "<span>";
    }

根据我对 Javascript 的了解,可以将函数分配给变量。我做错了什么?

最佳答案

你忘了在这里执行smalls

var smalls = function(){
        var table = $("#box-table-a");
        return table.find("small");
    }, smallContent;
    for(var i = 0; i<smalls.length; i++)
//                   ^smalls is a function pointer

var smalls = function(){
            var table = $("#box-table-a");
            return table.find("small");
        }(), smallContent;
//       ^execute the function
        for(var i = 0; i<smalls.length; i++)
//                       ^smalls is a nodeList

关于Javascript - 将函数分配给变量无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686348/

相关文章:

javascript - ajax表中的排序函数

jquery - CSS + Jquery如何让一个div浮在其他div内容之上

javascript - MVC 无法使用某些 JS 库

javascript - 隐藏表行所需的帮助 - dc.js

jquery - 仅jquery自动完成下载

javascript - Highchart X 轴 chop 显示奇怪的字符

c# - jquery 自动完成不选取动态数据

javascript - 使用 JQuery 选择具有特定类的所有 <tr> 元素

javascript - 如何在对象中添加项目?

javascript - 在 javascript 中的命名对象数组中 - 名称可以访问吗?