Javascript 循环以避免重复代码

Javascript 循环以避免重复代码,javascript,jquery,Javascript,Jquery,函数中的代码似乎非常重复。我怎样才能以更聪明的方式做同样的事情呢 我尝试了类似的方法,但无法像Expected那样工作 myApp.onPageInit("page", function(page) { $$('#ajax_step1').on('submitted', function(e) { mainView.router.loadPage('transfer1'); }); $$('#ajax_step2').on('submitted', fu

函数中的代码似乎非常重复。我怎样才能以更聪明的方式做同样的事情呢

我尝试了类似的方法,但无法像Expected那样工作

myApp.onPageInit("page", function(page) {
    $$('#ajax_step1').on('submitted', function(e) {
        mainView.router.loadPage('transfer1');
    });

    $$('#ajax_step2').on('submitted', function(e) {
        mainView.router.loadPage('transfer2');
    });
    ...
});
for(变量i=0;i<6;i++){
$$('#ajax_步骤'+i).on('submitted',函数(e){
mainView.router.loadPage('transfer'+i);
});
}

“[id^=ajax\u step]”
选择id以“ajax\u step”开头的所有元素。

更好的方法是使用公共类以及包含特定元素实例相关元数据的属性。试着这样做:

$$('[id^=ajax_step]').on('submitted', function(e) {
    mainView.router.loadPage('transfer'+this.id.slice(9));
});

虽然您选择的方法使这个问题重复,但我建议在表单上设置一个
data targetpage=“transfer1”
属性,然后使用该属性来确定下一步的方向。使用类来绑定事件。@NiettheDarkAbsol这正是我重新打开它的原因。大多数时候,这是正确的方法,我同意这一点。
$$('[id^=ajax_step]').on('submitted', function(e) {
    mainView.router.loadPage('transfer'+this.id.slice(9));
});
<div class="ajax_step" data-transfer="transfer1"></div>