Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery选择当前类_Jquery - Fatal编程技术网

使用jquery选择当前类

使用jquery选择当前类,jquery,Jquery,假设我有以下html: <div class="nav-1 anotherClass">menu one</div> <div class="someClass nav-2">menu two</div> 它得到第一个div的nav-1和第二个div的someClass 我怎样才能得到以nav开头的课程 我试过了,但没有成功: var nav = $('[class^=nav]').attr('class').split(' ')[this];

假设我有以下html:

<div class="nav-1 anotherClass">menu one</div>
<div class="someClass nav-2">menu two</div>
它得到第一个div的nav-1和第二个div的someClass

我怎样才能得到以nav开头的课程

我试过了,但没有成功:

var nav = $('[class^=nav]').attr('class').split(' ')[this];
有简单的吗?

试试看

var nav = $('[class|=nav]').attr('class').match(/(nav-[^\s]+)/)[0];


不,不幸的是,没有简单的方法可以上某一门课。您必须遍历所有类:

var navList = $('[class*=nav]').attr('class').split(' ');
var nav;
for(var i in navList) {
    if(navList[i].indexOf('nav') === 0) { nav = navList[i]; break; }
}

这就是为什么经常使用自定义html属性的原因,例如

<div class="nav anotherClass" data-custom-value=1>menu one</div>
<div class="someClass nav" data-custom-value=2>menu two</div>

我们更喜欢使用另一个类来实现这一点。。。class=“nav nav-1”它更易于使用。您为什么需要它?你不能使用一个普通的类,并使用第二个类或
数据
属性来识别每个类吗?然而,它得到了两倍于nav-1,nav-1@NavinRauniyar是
var nav=$('[class |=nav]').attr('class').match(/(nav-[^\s]+)/)[0]
为什么它在没有[0]的情况下得到两次?因为
.match()
返回一个数组how,我能用第一种方法吗?试着给我一个例子来警告第一个div的nav-1和第二个div的nav-2。@NavinRauniyar也注意到了这一点:使用
[class |=nav]
[class^=nav]
只匹配第一个元素(其中
nav-1
是第一个类)。使用
*=
将两者匹配。
var navList = $('[class*=nav]').attr('class').split(' ');
var nav;
for(var i in navList) {
    if(navList[i].indexOf('nav') === 0) { nav = navList[i]; break; }
}
<div class="nav anotherClass" data-custom-value=1>menu one</div>
<div class="someClass nav" data-custom-value=2>menu two</div>
var navNumber = $('.nav').attr('data-custom-value');