Синтаксис jQuery - получение класса, начинающегося с определенных символов - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь получить часть класса div как переменную.

Например, у меня есть такой div

<div class="menu-link scrollto-1">Home</div>

У меня также есть javascript, который запускается при нажатии на этот элемент (другие 2 передаваемые переменные не имеют для этого никакого значения, поэтому я удалил их для удобства чтения.

$(".menu-link").click(function() {
  var scroll = $(this).hasClass("scrollto-");
  alert (scroll);
  tabChange(menuTab,page, scroll);
});

Что мне нужно сделать, это:

  • Получить класс «scrollto-1»
  • Измените это на "1" в качестве переменной
  • Передать этот номер на вкладку функции. Изменить

Я немного озадачен, как этого добиться (поскольку есть 2 класса, а не только 1), и я не уверен, как поступить. Любой совет приветствуется.

Спасибо

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Лучше поместить это в атрибут данных

<div class="menu-link scrollto-1" data-scroll="1">Home</div>

$(".menu-link").click(function() {
  var scroll = $(this).data("scroll");
  alert (scroll);
  tabChange(menuTab,page, scroll);
});

или если вы хотите повторно использовать класс как есть:

<div class="menu-link scrollto-1" data-scroll="scrollto-1">Home</div>

$(".menu-link").click(function() {
  var scroll = $(this).data("scroll").replace("scrollto-", "");
  alert (scroll);
  tabChange(menuTab,page, scroll);
});

если вы не можете изменить HTML:

$(".menu-link").click(function() {
  var cls = $(this).attr("class");
  var idx = cls.indexOf("scrollto-");
  var scroll = cls.substring(idx+9);
  tabChange(menuTab,page, scroll);
});
0 голосов
/ 24 февраля 2012

Вы можете использовать совпадение регулярного выражения, чтобы получить число из свойства className:

$(".menu-link").click(function() {
  var scroll = this.className.match(/scrollto-(\d+)/)[1];
  alert (scroll);
  tabChange(menuTab,page, scroll);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...