如何将这些 "if" 更改为选择器字符串

How do I change these "if"s into a selector string

我有这些 if 语句,我相信它可以缩短。我是 coffeescript 的新手(也是 javascript)。

$ ->
  url = window.location.href.toString()
  urlpart = url.split("//")
  urlpart = urlpart[1].split("#")
  $("#mainTabs a[href=\"#payments\"]").tab "show"  if urlpart[1] is "payments"
  $("#mainTabs a[href=\"#invitations\"]").tab "show"  if urlpart[1] is "invitations"
  $("#mainTabs a[href=\"#orders\"]").tab "show"  if urlpart[1] is "orders"
  $("#mainTabs a[href=\"#campaigns\"]").tab "show"  if urlpart[1] is "campaigns"

您可以使用字符串插值来构建 jQuery 选择器,例如:

url = window.location.href.toString()
urlpart = url.split("//")
urlpart = urlpart[1].split("#")
$("#mainTabs a[href='##{urlpart[1]}']").tab "show"

双引号字符串中的#{...}位是插值。我还在选择器中切换到单引号以减少反斜杠噪音。