使用jQuery获取类名
我想要使用jQuery获取类名
如果它有一个ID
<div class="myclass"></div>
然后,通过其他方式获取元素作为jQuery对象
var className = $('#sidebar div:eq(14)').attr('class');
应该做的伎俩。 对于ID使用.attr('id')
。
如果您在事件处理程序或其他jQuery方法中,其中元素是没有包装的纯DOM节点,则可以使用:
this.className // for classes, and this.id // for IDs
两者都是标准的DOM方法,并在所有浏览器中得到很好的支持
当你想检查一个元素是否有特定的class
时,最好使用.hasClass()
。 这是因为当一个元素有多个class
时,检查并不重要。
例:
<div id='test' class='main divhover'></div>
哪里:
$('#test').attr('class'); // returns `main divhover`.
用.hasClass()
我们可以testingdiv
是否有divhover
类。
$('#test').hasClass('divhover'); // returns true $('#test').hasClass('main'); // returns true
小心,也许你有一个class级和一个小class。
<div id='id' class='myclass mysubclass' >dfdfdfsdfds</div>
如果您使用以前的解决scheme,您将有:
myclass mysubclass
所以,如果你想有类select器 ,请执行以下操作:
var className = '.'+$('#id').attr('class').split(' ').join('.')
你会有的
.myclass.mysubclass
现在,如果你想select所有具有相同的类,如上面的div元素:
var brothers=$('.'+$('#id').attr('class').split(' ').join('.'))
那意味着
var brothers=$('.myclass.mysubclass')
这是将第二个类用多个类放入一个元素中
var class_name = $('#videobuttonChange').attr('class').split(' ')[1];
你可以简单地使用,
var className = $('#id').attr('class');
如果你的<div>
有一个id
:
<div id="test" class="my-custom-class"></div>
…你可以试试:
var yourClass = $("#test").prop("class");
如果你的<div>
只有一个class
,你可以尝试:
var yourClass = $(".my-custom-class").prop("class");
如果你打算使用split函数来提取类名,那么你将不得不补偿可能产生意想不到的结果的潜在的格式变化。 例如:
" myclass1 myclass2 ".split(' ').join(".")
产生
".myclass1..myclass2."
我认为你最好使用正则expression式匹配类名称的允许字符集。 例如:
" myclass1 myclass2 ".match(/[\d\w-_]+/g);
产生
["myclass1", "myclass2"]
正则expression式可能不完整,但希望你能理解我的观点。 这种方法可以减less糟糕格式化的可能性。
为了完成Whitestock的答案(这是我发现的最好的答案),我做了:
className = $(this).attr('class').match(/[\d\w-_]+/g); className = '.' + className.join(' .');
所以对于“myclass1 myclass2” ,结果将是“.myclass1 .myclass2”
你可以通过两种方式获得类名:
var className = $('.myclass').attr('class');
要么
var className = $('.myclass').prop('class');
<div id="elem" class="className"></div>
用Javascript
document.getElementById('elem').className;
用jQuery
$('#elem').attr('class');
要么
$('#elem').get(0).className;
如果你不知道类名,但是你知道这个ID,你可以试试这个:
<div id="currentST" class="myclass"></div>
然后使用以下命令调用
alert($('#currentST').attr('class'));
如果我们有单个或我们想要第一个div
元素,我们可以使用
$('div')[0].className
否则我们需要该元素的id
如果你想获得div的类,然后想检查是否有任何类存在,那么简单的使用。
if ( $('#div-id' ).hasClass( 'classname' ) ) { // do something... }
例如;
if ( $('body').hasClass( 'home' ) ) { $('#menu-item-4').addClass('active'); }
尝试一下
HTML
<div class="class_area-1"> area 1 </div> <div class="class_area-2"> area 2 </div> <div class="class_area-3"> area 3 </div>
jQuery的
<script src="jquery-1.11.3.js"></script> <script type="application/javascript"> $('div').click(function(){ alert($(this).attr('class')); }); </script>