【问题标题】:jQuery. Pass a variable from a function to an .each insidejQuery。将变量从函数传递到 .each 内部
【发布时间】: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 作为第二个参数?

标签: jquery function variables


【解决方案1】:

用途:

var hiddenElements = ul.children('li:gt(' + varNum + ')').hide,

您必须使用字符串连接将变量的值替换为选择器字符串。而.children()只需要一个参数,不需要传递this(你在设置ul时已经使用了this)。

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 2022-01-17
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    相关资源
    最近更新 更多