Javascript-将函数赋值给变量不';我不能如愿工作
当我尝试从函数返回对象并将其分配给smalls变量时,smalls变量为空,因为它的长度返回为0Javascript-将函数赋值给变量不';我不能如愿工作,javascript,jquery,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].in
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>";
}
var smalls=function(){
var表=$(“#box-table-a”);
返回表。查找(“小”);
},小含量;
对于(var i=0;iTry
var smalls=function(){
var表=$(“#box-table-a”);
返回表。查找(“小”);
},小含量;
对于(var i=0;iTry
var smalls=function(){
var表=$(“#box-table-a”);
返回表。查找(“小”);
},小含量;
对于(var i=0;i来说,这是因为您必须实际执行函数,而不仅仅是分配它。
将函数分配更改为自动执行的匿名函数,这应该可以工作
var smalls = (function(){
var table = $("#box-table-a");
return table.find("small");
})(), smallContent;
这是因为您必须实际执行函数,而不仅仅是分配它。
将函数分配更改为自动执行的匿名函数,这应该可以工作
var smalls = (function(){
var table = $("#box-table-a");
return table.find("small");
})(), smallContent;
您忘记在此处执行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
var smalls=function(){
var表=$(“#box-table-a”);
返回表。查找(“小”);
},小含量;
对于(var i=0;i您忘记在此处执行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
var smalls=function(){
var表=$(“#box-table-a”);
返回表。查找(“小”);
},小含量;
对于(var i=0;i,正如其他人所提到的,您循环一个函数引用,而不是执行smalls
的结果
但是,在使用jQuery时,可以编写更短/更简单的代码:
var smalls = $("#box-table-a").find("small"); // this var really contains the elements
smalls.addClass("form-absolute-right").wrapInner("<span class='bubble' />");
smalls.parent().addClass("relative");
var smalls=$(“#box-table-a”).find(“small”)//此变量确实包含元素
smalls.addClass(“形式绝对权利”).wrapInner(“”);
smalls.parent().addClass(“相对”);
这有各种好处:
- 这些类只是简单地添加到列表中,您不必担心空格
- wrapInner确实保留了DOM(与所有侦听器等一起),而不是与html字符串混淆
- 遍历方法的parent()对集合进行唯一化,因此具有多个
表框的元素只能得到一个类
- 您根本不需要循环,jQuery方法对集合中的每个项都执行
正如其他人所提到的,您循环一个函数引用,而不是执行smalls
的结果
但是,在使用jQuery时,可以编写更短/更简单的代码:
var smalls = $("#box-table-a").find("small"); // this var really contains the elements
smalls.addClass("form-absolute-right").wrapInner("<span class='bubble' />");
smalls.parent().addClass("relative");
var smalls=$(“#box-table-a”).find(“small”)//此变量确实包含元素
smalls.addClass(“形式绝对权利”).wrapInner(“”);
smalls.parent().addClass(“相对”);
这有各种好处:
- 这些类只是简单地添加到列表中,您不必担心空格
- wrapInner确实保留了DOM(与所有侦听器等一起),而不是与html字符串混淆
- 遍历方法的parent()对集合进行唯一化,因此具有多个
表框的元素只能得到一个类
- 您根本不需要循环,jQuery方法对集合中的每个项都执行
你所说的“不工作”是什么意思?是的,你确实给变量分配了一个函数。但你为什么需要它呢?保罗·布彻(Paul Butcher)——将问题编辑得更有意义!你所说的“不工作”是什么意思是的,你确实给一个变量分配了一个函数。但是你为什么需要它呢?Paul Butcher-编辑了这个问题,让它更有意义!Bergi-哇。从来都不知道我不需要一个循环。谢谢分享知识!Bergi-哇。从来都不知道我不需要一个循环。谢谢分享知识!