Javascript Looping синтаксис - PullRequest
0 голосов
/ 09 мая 2011

Это должно быть легко для кого-то, я просто не могу понять правильный синтаксис. У меня есть следующий код, и я уверен, что 70% этого может быть представлено циклом: кто-то может просветить меня, пожалуйста?

function AddNewEmail(){
var jFilesContainer = $( "#emails" );
var jUploadTemplate = $( "#email-templates div.template" );
var jUpload = jUploadTemplate.clone(); 
var strNewHTML = jUpload.html();
var intNewFileCount = (jFilesContainer.find( "div.template" ).length + 1); 
jUpload.attr( "id", ("emailedit[" + intNewFileCount + "]") );
strNewHTML = strNewHTML
    .replace(
        new RegExp( "::FIELD1::", "i" ),
        intNewFileCount
        )
            .replace(
        new RegExp( "::FIELD2::", "i" ),
        intNewFileCount
        )
            .replace(
        new RegExp( "::FIELD3::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD4::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD5::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD6::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD7::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD8::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD9::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD10::", "i" ),
        intNewFileCount
        )
                .replace(
        new RegExp( "::FIELD11::", "i" ),
        intNewFileCount
        ) 
            .replace(
        new RegExp( "::FIELD12::", "i" ),
        intNewFileCount
        ) 

;

jUpload.html( strNewHTML );
jFilesContainer.append( jUpload );
}

Ответы [ 3 ]

2 голосов
/ 09 мая 2011

Если вы используете регулярные выражения, используйте их:

strNewHTML = strNewHTML.replace(/::FIELD\d{1,2}::/gi, intNewFileCount);
2 голосов
/ 09 мая 2011

Я бы сказал

strNewHTML = strNewHTML.replace(/::FIELD\d+::/gi, intNewFileCount);

может быть заменой всей вашей логики strNewHTML. Не петля, но все равно короче.

0 голосов
/ 09 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...