我怎样才能获得元素的第一类?

时间:2016-11-14 19:06:30

标签: jquery substring this

我试图在悬停在它上面时获取元素的类。

到目前为止,我已经取得了一些进展:

var classString = $(this).attr('class');

这给了我元素的所有类(不幸的是不止一个)。例如,如果我这样做:

alert(classString);

我得到字符串"博客按钮主要"。我想得到该字符串的第一个单词(第一个类)。我试过了:

var myClass = $(classString).text().split(' ')[0];
alert(myClass);

期待得到#34;博客",但我得到一个空字符串。我确定这只是我犯的一个基本错误,但我无法看到它。

3 个答案:

答案 0 :(得分:3)

classString已经是一个字符串,而split是字符串的原型函数,而不是jQuery函数。

var classString = $(this).attr('class'); // "blog button main"
var myClass = classString.split(' ')[0]; // "blog"
alert(myClass);

小提琴:https://jsfiddle.net/d927r9z4/

如果你跑

var classArray = classString.split(' ');
console.log(classArray);

你会得到一个类的数组:

["blog","button","main"]

小提琴:https://jsfiddle.net/d927r9z4/1/

但它可以更快:

如果你使用vanilla JS classList,它会快得多

var myClass = this.classList[0];
alert(myClass);

这样,您不必创建jQuery对象(慢)或拆分字符串(慢)。

小提琴:https://jsfiddle.net/d927r9z4/2/

答案 1 :(得分:1)

你只想要$(".question-page").attr("class").split(' ')[0]。使用.attr("class")将返回一个字符串,其中所有类都以空格分隔。你想要第一个,所以你可以按空格分割这个字符串以获得包含所有类的数组,然后选择该数组的第一个(第0个)索引。

答案 2 :(得分:0)

很长一段时间需要这样的东西,当我在盘旋div时试图上课。

HTML

<div class="views-row views-row-3 views-row-odd views-row-first show-more-cards">
   <div class="views-field views-field-title">        
     <p>My code</p>
   </div>
</div>

JS

$( document ).on( 'mouseleave', 'div.views-row ', function( e ) {
        var $tarjeta = $(e.target).closest( '.views-row' ).attr( 'class' ).split(' ')[ 1 ];
});

你可以查看我的第二节课的代码。

http://codepen.io/anon/pen/gLMgzj?editors=1111

我希望能帮到你。