#javascript #jquery
Вопрос:
У меня есть длинный список параметров, которые я должен передать в .removeClass
функцию jQuery.
Как мне добавить их все в одну круглую скобку, разделенную запятыми? В настоящее время это выглядит так…
$("#bottom-nfl").click(function(){
$("#bottom-mlb i, #bottom-mlb small").removeClass("orange");
$("#bottom-nba i, #bottom-nba small").removeClass("orange");
$("#bottom-ncaab i, #bottom-ncaab small").removeClass("orange");
$("#bottom-profile i, #bottom-profile small").removeClass("orange");
});
Но я хочу, чтобы это выглядело так:
$("#bottom-nfl").click(function(){
$("#bottom-mlb i, #bottom-mlb small,
#bottom-nba i, #bottom-nba small,
#bottom-ncaab i, #bottom-ncaab small
#bottom-profile i, #bottom-profile small").removeClass("orange");
});
Но это приводит к unterminated string literal
ошибке.
Я попытался с помощью обратной косой черты избежать перевода строк, но это тоже не сработало
Комментарии:
1. Вы его тестировали? Это должно сработать.
2. $(«#bottom-nfl»).click(function() { $(«#bottom-mlb i, #bottom-mlb small, #bottom-nba i, #bottom-nba small, #bottom-ncaab i, #bottom-ncaab small, #bottom-profile i, #маленький нижний профиль»).removeClass(«оранжевый»); });
3. @prettyInPink Я действительно пробовал, но у меня получилась неразборчивая боковая строка. Я попытался с помощью обратной косой черты избежать этого, но это тоже не сработало.
4. Вы не можете разделить строку таким образом. Используйте шаблонные литералы
5. Для многострочной строки вам нужно использовать обратные метки или объединить каждую строку с
Ответ №1:
Здесь вам понадобятся шаблонные литералы, если вы хотите разделить строку, и это позволит вам отформатировать список
Также вы пропустили запятую
$("#bottom-nfl").on("click", function(){
$(`#bottom-mlb i, #bottom-mlb small,
#bottom-nba i, #bottom-nba small,
#bottom-ncaab i, #bottom-ncaab small,
#bottom-profile i, #bottom-profile small`).removeClass("orange");
});
или запрограммировать его
$("#bottom-nfl").on("click", function(){
["mlb","nba","ncaab","ncaab","profile"]
.forEach(cls => $(`#bottom-${cls} i, #bottom-${cls} small`).removeClass("orange"));
});
На самом деле экранирование новой строки ДОЛЖНО сработать, но литералы шаблона красивее
$("#bottom-nfl").on("click", function(){
$("#bottom-mlb i, #bottom-mlb small,
#bottom-nba i, #bottom-nba small,
#bottom-ncaab i, #bottom-ncaab small,
#bottom-profile i, #bottom-profile small").removeClass("orange");
});