开发者问题收集

错误:无法读取未定义的属性“replace”

2016-01-04
27039

我有 javascript 代码,但出现错误 无法读取未定义的属性“replace” 。有人能帮我解决这个问题吗?这是我的代码,我目前使用的是 jQuery 2.1.3。

ExpandableTable.prototype.updateInputBoxName=function(){
    $("."+this.cloneClass,this.target).each(function(j,t){
        var n=j+1;
        $("input,textarea",$(t)).each(function(i,v){
            if($(v).attr("name")!=""){
                var newName=$(v).attr("name").replace(/\d+$/,"")+n;
                $(v).attr("name",newName);
            }
        });
    });
    return this
};
ExpandableTable.prototype.updateInputBoxId=function(){
    var t=this;
    $("."+t.cloneClass,this.target).each(function(j,u){
        var n=j+1;
        $("input,textarea",$(u)).each(function(i,v){
            if($(v).attr("id")!=""){
                var newId=$(v).attr("id").replace(/\d+$/,"")+n;
                $(v).removeAttr("id").attr("id",newId);
            }
        });
    });
    return this
};

它说我在 .replace 上遇到错误。

请帮我解决这个问题

1个回答

您的 if 语句需要检查 $(v).attr("id") 是否未定义

  if ($(v).attr("id") != "" && typeof $(v).attr("id") != 'undefined') {

应该停止该错误。

正如 MinusFour 所说 if ($(v).attr("id")) 更简洁,但可以达到同样的效果。

DGS
2016-01-04