【发布时间】:2015-04-24 00:13:24
【问题描述】:
我想传递一个变量,“1”或“2”,并根据可用大小运行一个函数。如何确保 var 可以通过另一个函数?谢谢!
$(function() {
function newFunc(varNum){
$('.listing__item .item__details').each(function() {
var ul = $('ul.item__authors', this);
var authors = $('.item__authors-info', this);
if(ul.children('li.author').size() <= varNum) return;
var hiddenElements = ul.children('li:gt(varNum)', this).hide(),
showCaption = '+ ' + hiddenElements.size() + ' others';
authors.append($('<span class="other-authors">' + showCaption + '</span>'));
});
}
newFunc('1');
});
【问题讨论】:
-
你不需要做任何事情。内部函数总是可以从外部函数访问变量,除非它们声明了同名的局部变量。
-
我看到的唯一问题是
'li:gt(varNum)'。变量不在字符串中求值。 -
谢谢,但是如果我在没有进入 newFunc 的情况下运行它,如果我输入 '1' 而不是 varNum,它会正常工作。但我需要能够根据一些事情运行 newFunc,所以需要传递一个数字给它
-
没有@Barmar 告诉你,所以你需要使用 varNum 作为变量而不是字符串
-
ul.children()只接受一个参数。为什么要传递this作为第二个参数?