Я знаю, что в SO уже есть много сообщений по этой проблеме. Но ни один из них не подходит для моего случая.
У меня есть несколько входов select со следующим форматом именования:
select name="violationCategory[${theCount.count-1}].subCategory"
что переводится примерно так:
select name="violationCategory[0].subCategory"
select name="violationCategory[1].subCategory"
.. so on
Я должен применить определенный класс к этим выбранным входам, если выполняется какое-то условие. Итак, я пытаюсь заменить квадратные скобки на что-то вроде этого:
if(key.indexOf("[") >= 0){
key = $.trim(key).replace("name=^[","name=^\\[");
key = $.trim(key).replace("].","\\].");
alert(key);
$("#" + formId + " select[name=" + key + "]").addClass('inputBoxError');
}
Предупреждение печатает:
violationCategory[1\].subCategory]
и я получаю ошибку:
Uncaught Error: Syntax error, unrecognized expression: #referralViolationForm select[name=violationCategory[1\].subCategory]
Когда я меняю код на:
key = $.trim(key).replace("].","\].");
тревожные отпечатки:
violationCategory[1].subCategory]
и я получаю ошибку:
Uncaught Error: Syntax error, unrecognized expression: #referralViolationForm select[name=violationCategory[1].subCategory]
Так что, в основном, это не работает ни в какую сторону.
Может ли кто-нибудь помочь мне, как избежать квадратных скобок.