当我尝试从函数返回对象并将其分配给 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/