I have a long list of parameters I have to pass into a jQuery .removeClass function.
How do I add them all into one parenthesis separated by commas? Currently it looks like this...
$("#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");
});
But I want it to look like this:
$("#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");
});
But that resultes in unterminated string literal error.
I tried with the backslash to escape the newlines but that doesn't work either
You need template literals here if you want to split the string and that allows you to format the list
Also you missed a comma
$("#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");
});
or program it
$("#bottom-nfl").on("click", function(){
["mlb","nba","ncaab","ncaab","profile"]
.forEach(cls => $(`#bottom-${cls} i, #bottom-${cls} small`).removeClass("orange"));
});
Actually escaping the newline SHOULD work, but the template literals are prettier
$("#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");
});