javascript - 未捕获的类型错误 : elem. 替换不是函数

标签 javascript jquery html css

这是我正在尝试做的事情: for loop inside the append is not working

这里是我的代码:

$('body').append(
    $('<section>').append(
        $('<form>')
        .attr('class', "ac-custom ac-checkbox ac-cross")
        .attr('autocomplete', "off")
        .append(
            $('<h2>')
            .html(
                "Your to do list to uniquely deploy cross-unit s:"
            ),

            function() {
                options = ["ONE", "TWO", "THREE", "FOUR"];
                var $container = $('<ol></ol>');
                $.each(options, function(val) {
                    $container.append($('<li>').append(
                        $("<input>").attr('id', "cb" +
                            val)
                        .attr('name', "cb" + val)
                        .attr('type', "checkbox"),
                        $("<label>").attr('for', "cb" +
                            val).append(
                            $('<span>').html(
                                "Quickly incentivize impactful actions"
                            )
                        )
                    ));
                })
                return $('<ol>').html();
            }

        )
    )
)

错误:

jquery-2.1.1.js:5089 Uncaught TypeError: elem.replace is not a function

我做错了什么?

最佳答案

假设您只想附加 h2 中的 HTML 和您传递给 append 的函数的输出,您可以将调用链接起来:

$('body').append(
    $('<section>').append(
        $('<form>')
        .attr('class', "ac-custom ac-checkbox ac-cross")
        .attr('autocomplete', "off")
        .append(
            $('<h2>')
            .html(
                "Your to do list to uniquely deploy cross-unit s:"
            )
        )
        .append(
            function() {
                options = ["ONE", "TWO", "THREE", "FOUR"];
                var $container = $('<ol></ol>');
                $.each(options, function(val) {
                    $container.append($('<li>').append(
                        $("<input>").attr('id', "cb" +
                            val)
                        .attr('name', "cb" + val)
                        .attr('type', "checkbox"),
                        $("<label>").attr('for', "cb" +
                            val).append(
                            $('<span>').html(
                                "Quickly incentivize impactful actions"
                            )
                        )
                    ));
                })
                return $container.html();
            }

        )
    )
)

但难怪您看不到问题所在。你应该把它分成更小、更易于管理的部分

关于javascript - 未捕获的类型错误 : elem. 替换不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771836/

相关文章:

javascript - Fusion Tables + Google Maps API,删除信息窗口/卡片/气球?

html - Bootstrap 4 .card-group 不适用于列内的卡片

javascript - 获取特定div的宽度并用作另一个div的高度?

javascript - Kendo 网格 - 如何在添加/编辑子行(详细信息网格)时访问父行模型

javascript - jquery ui datepicker 不更新值

javascript - javascript 上的 ajax 请求不起作用

html - 我的 omnigrid 看起来与谷歌浏览器中的官方演示不同

events - 具有负 z 值的 CSS 3D 转换后的 html 元素不会触发事件

javascript - sails.js 中关联模型的 Where 子句

jquery - 无法在移动 Safari 上单击固定位置元素