Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将jquery选择器传递给函数_Jquery - Fatal编程技术网

将jquery选择器传递给函数

将jquery选择器传递给函数,jquery,Jquery,您好,这可能是一个简单而愚蠢的问题,但是如何将jquery选择器传递给函数呢 我这样做,但它不工作。提前谢谢 var $list=$('#startlist') var $container=$list.parent(); var $containerTop=$('#toprow'); var $containerTwo=$('#etrow #bottomrow'); var $li=$list.find('li'); var totHt=0; var totItems=$li.length

您好,这可能是一个简单而愚蠢的问题,但是如何将jquery选择器传递给函数呢

我这样做,但它不工作。提前谢谢

var $list=$('#startlist')
var $container=$list.parent();
var $containerTop=$('#toprow');
var $containerTwo=$('#etrow #bottomrow');

var $li=$list.find('li');

var totHt=0;
var totItems=$li.length;
var listCount = 0;
    $li.each(function( idx){

    var ht=$(this).outerHeight(true);

    if( totHt + ht >= maxHt || totHt + ht + 10 >=maxHt || idx==totItems-1){
        if (listCount>=3 && listCount < 6)
            createNewList($containerTop);
        else if (listCount >=6)
            createNewList($containerTwo);
        else
            createNewList($container);
        totHt=0;
        listCount++;
    }else{
        totHt += ht;
    }

});

function createNewList ($cont)
{
    $('<ul>').append( $(this).prevAll().andSelf() ).appendTo( $cont );

}
如果我将If块替换为该块,它可以正常工作:

if (listCount>=3 && listCount < 6)
                    $('<ul>').append( $(this).prevAll().andSelf() ).appendTo( $containerTop);
        else if (listCount >=6)
             $('<ul>').append( $(this).prevAll().andSelf() ).appendTo($containerTwo);
                else
             $('<ul>').append( $(this).prevAll().andSelf() ).appendTo($container);
if(listCount>=3&&listCount<6)
$(“
    ”).append($(this.prevAll().andSelf()).appendTo($containerTop); 否则如果(列表计数>=6) $(“
      ”).append($(this.prevAll().andSelf()).appendTo($containerTwo); 其他的 $(“
        ”).append($(this.prevAll().andSelf()).appendTo($container);
由于您是在
之外定义函数。每个
都会丢失上下文。尝试使用
.call
将上下文正确设置为您期望的内容

createNewList.call(this,$containerTop)

执行
$li时是否确实存在元素。每个…
?函数和传递函数看起来很好,代码在做什么或不做什么是个问题?是的,工作正常。我刚刚添加了这个函数。在此之前,它工作得很好,但我想让它成为一个函数,而不是写附加3次哇,你的男人!谢谢你,凯文。成功了。那么你能进一步解释我为什么需要它吗?你的函数不在$的范围内。所以
这个
在这个上下文中可能就是文档。所以你说的是$(“
    ”).append(document),这没有任何意义。你可以从字面上取
    $(“
      ”).append(document)
    ,并将其放在控制台中以获得相同的错误。
    createNewList.call(this,$containerTop)