如何在jquery中获得第二个类?

如何在jquery中获得第二个类?,jquery,html,Jquery,Html,我想在以下代码中独立使用tab1 tab2 tab3,例如: var tab_class = $(this).attr('class'); //this equals li 选项卡_类将获得两个值(测试选项卡1)。如何摆脱测试和空间 $("#subnav-content div." + tab_class).show(); 去上最后一节课 编辑:但是,正如善意地指出的,在呈现时,类可能会按字母顺序重新排列。所以我投赞成票,但在处理数组之前,您需要检查是否有匹配项 tab_class.sp

我想在以下代码中独立使用tab1 tab2 tab3,例如:

var tab_class = $(this).attr('class');   //this equals li
选项卡_类
将获得两个值(测试选项卡1)。如何摆脱测试和空间

$("#subnav-content div." + tab_class).show();
去上最后一节课

编辑:但是,正如善意地指出的,在呈现时,类可能会按字母顺序重新排列。所以我投赞成票,但在处理数组之前,您需要检查是否有匹配项

tab_class.split(/\s+/).pop()
但硬编码索引可能是个坏主意;]

你可以做:

var tab_class = $(this).attr('class').split(' ')[1]
更新了解释@Hnatt建议的代码

使用此代码,如果变量
tab\u class
包含类名称,如
tab1
tab2
。。。将为其分配该名称,否则将为其分配
none

与其去掉
测试和空格,不如集中精力从该变量中去掉
tab1


此外,这是不正确的:

tabs = tab_class.match(/(tab\d+)/g);
tab_class = (tabs) ? tabs[0] : 'none';
应该是

$("#subnav-content div." + tab_class).show();

只是一个建议,你为什么不把你的代码写成:

$("div#subnav-content." + tab_class).show();

这里的优点是不会有任何JS错误。性能不会受到影响,因为我们只为DOM元素分配ID。

您应该扩展上一个问题,而不是为此创建一个新的问题。在/\s+/上拆分可能会更健壮。如果您对结构非常确定,我会使用
选项卡_class.split(/\s+/).pop()
@zhuanzhou:它表示任意数量的空白字符。我不使用正则表达式解决方案,因为浏览器可能会在DOM中将“test tab1”呈现为“tab1 test”。最好的方法是用“”替换“tes”,然后修剪空格。谢谢@Tarun,你说得对。我根据您的评论更新了我的答案。在获得第一个匹配之前,您可能需要检查是否存在任何匹配。因为如果没有,那么您将得到TypeError。@转周:它是一个正则表达式,用于匹配格式
选项卡中的任何字符串
+任何数字。例如,
tab1
tab234
等…如果空间较大。它不会得到值。我测试了你的代码。该值没有发生任何更改。替换('tes','')是什么意思?非常感谢。
$("#subnav-content div." + tab_class).show();
$("div#subnav-content." + tab_class).show();
<div class="nav-top">
  <ul>
      <li class="test tab1" id="tab1-link"><a href="/">test</a></li>
      <li class="tes tab2" id="tab2-link"><a href="#">test</a></li>
      <li class="tes tab3" id="tab3-link"><a href="#">test</a></li>
      <li class="navahead" id="tab4-link"><a href="#">test</a></li>
      <li class="navahead" id="tab5-link"><a href="#">test</a></li>
      <li class="new" id="tabx-link"><a href="#">test</a></li>
  </ul>
</div>
<div id="subnav-content" class="tab1">hello world</div>
...
var tab_class = $(this).attr('id');
tab_class = tab_class.replace('-link','');
...