我试图在悬停在它上面时获取元素的类。
到目前为止,我已经取得了一些进展:
var classString = $(this).attr('class');
这给了我元素的所有类(不幸的是不止一个)。例如,如果我这样做:
alert(classString);
我得到字符串"博客按钮主要"。我想得到该字符串的第一个单词(第一个类)。我试过了:
var myClass = $(classString).text().split(' ')[0];
alert(myClass);
期待得到#34;博客",但我得到一个空字符串。我确定这只是我犯的一个基本错误,但我无法看到它。
答案 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对象(慢)或拆分字符串(慢)。
答案 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
我希望能帮到你。