【问题标题】:$.each inside $.append (Object [object Array] has no method 'apply')$.append 中的 $.each (Object [object Array] 没有方法 'apply')
【发布时间】:2013-06-03 20:47:12
【问题描述】:

我正在尝试 $.append 自定义插件内部动态构造元素内的动态构造元素:

$('<div/>').append( function(){
    $.each(paramaterObject.rows, function(rowKey, rowValue){
        return $('<div/>')...

但 Chrome 控制台提供了Object [object Array] has no method 'apply'

这样可以$.append()吗?如果没有,是否有替代方案?请告诉我怎么做。

【问题讨论】:

  • 刚刚从我最近的 3 个问题中学到了很多,但如果和我走同一条路,可能想看看这里:json2html.com

标签: javascript jquery append each


【解决方案1】:

你可以试试:

    var parentDiv = $('<div/>');
    $.each(paramaterObject.rows, function(rowKey, rowValue){
        parentDiv.append($('<div/>'));
    });

【讨论】:

    【解决方案2】:

    不,您不能从迭代器返回——您必须保留一个填充的缓冲区,并在所有迭代完成后返回该缓冲区。

    类似的东西;

    $('<div />').append(function () {
    
        var buffer = "";
        $.each (parameterObject.rows, function () {
            buffer += "<div />";
        });
        return buffer;
    
    });
    

    【讨论】:

    • “不,你不能从迭代器返回......”我想说迭代器中的返回用于告诉.each() 停止迭代。无论如何 +1。
    • @Karl-AndréGagnon,它实际上并没有停止迭代器——它的工作方式与 continue 在常规 for 循环中所做的一样(只是跳过当前迭代)。
    • 对不起,如果我解释错了。我的意思是您可以在每个中使用 return,但它用于停止循环(使用return false)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2015-06-09
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2015-05-08
    相关资源
    最近更新 更多