jQuery语法 - 获取以某些字符开头的类

时间:2012-02-24 10:10:29

标签: jquery syntax jquery-selectors

我试图将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);
});

我需要做的是:

  • 上课&#34; scrollto-1&#34;
  • 将此更改为&#34; 1&#34;作为变量
  • 将此号码传递给功能tabChange

我有点难过如何实现这一点(因为有2个类不仅仅是1)而且我不确定如何继续。任何建议都表示赞赏。

由于

2 个答案:

答案 0 :(得分:1)

你最好将它放入数据属性

<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);
});

答案 1 :(得分:0)

您可以使用正则表达式匹配来获取className属性中的数字:

$(".menu-link").click(function() {
  var scroll = this.className.match(/scrollto-(\d+)/)[1];
  alert (scroll);
  tabChange(menuTab,page, scroll);
});