假设我有以下html:
<div class="nav-1 anotherClass">menu one</div>
<div class="someClass nav-2">menu two</div>
现在,我想选择这样的类:
var nav = $('[class^=nav]').attr('class').split(' ')[0];
它获得第一个div的nav-1和第二个div的someClass。
如何获得以nav开头的课程?
我尝试了这个但没有奏效:
var nav = $('[class^=nav]').attr('class').split(' ')[this];
周围有简单吗?
答案 0 :(得分:1)
尝试
var nav = $('[class|=nav]').attr('class').match(/(nav-[^\s]+)/)[0];
或
$('[class|=nav]').each(function(){
var nav = this.className.match(/(nav-[^\s]+)/)[0]
})
答案 1 :(得分: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; }
}
这就是使用自定义html属性的常见原因,例如
<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');