Jquery无法调用未定义的方法replace



我不确定我为什么会得到错误,但我得到的是"无法调用未定义的方法替换"。它发生在$('#wizard'+optionalArg)部分,如果我删除optionalArg部分,它会正常工作。知道为什么会发生这种事吗?

 function loadWizard(optionalArg) 
    {
    optionalArg = (typeof optionalArg === "undefined") ? "" : optionalArg;
    $('#wizard'+optionalArg).smartWizard({contentURL:'/welcome/form_view',
    transitionEffect:'slideleft', onLeaveStep:leaveAStepCallback,onFinish:onFinishCallback, contentCache:false});
    }

函数调用

var id = 2;
loadWizard(id);

在我发送ID之前,我运行这个

$('#all_wizards').append('<form action="#" method="POST"><div id="wizard2" class="swMain template"></div></form>');

所以魔法2应该存在。。

它可以是:

$('#wizard'+optionalArg) //would make wizard2

html中没有具有此id的元素,因此在undefine上调用方法会引发异常。

尝试空检查:

function loadWizard(optionalArg) 
{
   var myElement=$('#wizard'+optionalArg);
   if(myElement.length>0){
       $('#wizard'+optionalArg).smartWizard({contentURL:'/welcome/form_view',transitionEffect:'slideleft', onLeaveStep:leaveAStepCallback,onFinish:onFinishCallback, contentCache:false});
    }
}

你确定你有一个带有的元素吗

id="wizard1" (assuming optionalArg = 1)

通过将console.log放入('#wizard'+optionalArg)进行调试,并检查元素是否存在?最有可能的是,该元素不存在,从而产生错误。

最新更新