0

奇妙なことに、この問題に対する答えが見つかりませんでしたが、次のエラーが発生しています。

TypeError: 'undefined' is not a function (evaluating 'i.replace(et,"<$1></$2>")')

このコード行から来ているようです (コードを見つけるために、コードのすべての行に苦労してコメントする必要がありました)。

$.post("include/ajax.php", {updateWorkArt:"1", title:title, height:height, width:width, medium:medium, type:type, id:id, left:fin, top:top}, function(data){},"json");

完全なコードは次のとおりです。

$(document).on("click", "#updateWorkPopup", function(){
        var title = $("#updateWorkTitle").val();
        var height = $("#updateWorkHeight").val();
        var width = $("#updateWorkWidth").val();
        var medium = $("#updateWorkMedium").val();
        var type = $("#updateWorkAssetType").val();

        var id = $("#whiteBgPopup").attr("data-workid");

        if($.trim(title) != "" && $.trim(height) != "" && $.trim(width) != "" && $.trim(medium) != "" && $.trim(type) != "")
        {
            var left = parseInt($("#offsetContainer").position().left);

            var containerMid = parseInt($(window).width()/2);

            var fin = (-containerMid+left)*-1;

            var top = parseInt($("#wall").height()/2);

            $.post("include/ajax.php", {updateWorkArt:"1", title:title, height:height, width:width, medium:medium, type:type, id:id, left:fin, top:top}, function(data){
                if(data.success)
                {   
                    $("#popUp").fadeOut("slow", function(){
                        $("#popUp").find("input").each(function(){
                            $(this).val("").blur();
                        });

                        $("#wall").append("<div class='adjustArtwork' data-workid='" + id + "' style='left:" + fin + "px; top:" + top + "px;' ><img src='" + data.image + "' width='" + data.width + "' /></div>", function(){
                            alert("finished");
                        });
                    });
                }
                alert("yes!");
            },"json");
        }
    });

このエラーは正確にはどういう意味ですか?

4

2 に答える 2

0

iこれは、変数が というプロパティを持たないオブジェクトを参照したことを意味します (ほとんどの場合) replace

頼んだ時

i.replace

JavaScript が の値を調べたところ、iそれがオブジェクトであることがわかりました。その後、そのreplaceプロパティを検索しましたが、見つからなかったため、 が返されundefinedました。

その後、関数として呼び出そうとしましi.replaceたが、「未定義は関数ではありません」。

i.replaceの値が実際に の値であった可能性もありますundefined(ただし、これはまれであり、完全を期すためにのみ追加されています)。

どちらの場合も、コード

i.replace(et,"<$1></$2>")

の値がi.replace関数の場合にのみ機能します。

于 2013-06-19T02:18:59.897 に答える