#javascript #loops #syntax #for-loop
#javascript #циклы #синтаксис #for-цикл
Вопрос:
Это должно быть легко для кого-то, я просто не могу понять синтаксис правильно. У меня есть следующий код, и я уверен, что 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 );
}
Комментарии:
1. Что не работает, в чем проблема?
Ответ №1:
Если вы используете регулярные выражения, используйте их:
strNewHTML = strNewHTML.replace(/::FIELDd{1,2}::/gi, intNewFileCount);
Ответ №2:
Я бы сказал
strNewHTML = strNewHTML.replace(/::FIELDd ::/gi, intNewFileCount);
может быть заменой всей вашей логики strNewHTML. Не цикл, но в любом случае короче.