Ich habe die Klasse eines Elements festgelegt und möchte nun die Klasse des Elements über JavaScript ändern. Ich habe versucht, das Klassenattribut mit jQuery zu ändern, aber es hat nicht funktioniert.
html:
<nav>
<ul class="pager" id="pageCtr">
<li class="previous" id="prevBTN">
<a href="#" onclick="prevPage()"><span>←</span>前一页</a>
</li>
</ul>
</nav>
js:
$('#prevBTN').className='previous disabled';
假设元素
可以这样改
屡试不爽。
jQuery把
document.getElementById('idValue')
改成$('#idValue')
就好啦HTML:
JS:
不是通过
attr
,而是通过className
PS:
如果你想为
li
添加属性disabled
可以这样做,不是添加class
而是attr
:$('#prevBTN').attr('disabled', true);
去除attr:
楼主的代码是怎样的?
为什么我这里直接用attr()来设置class是可以的呢?
另外,jQuery还有addClass()和removeClass这两个方法,操作class 我一般用这两种方法。
jQuery有专门操作class的方法,可以查下相关API
感谢 @daryl 和 @tony_yin 的热心解答,我自己也想用吧
<li>
标签里面的<a>
换成<button>
,能实现禁用按钮效果,但是.pager
的 BootStrap 默认样式会变化;将
<li class="previous" id='prevBTN'>
换成<li class="previous disabled" id='prevBTN'>
使用document.getElementById('prevBTN').className='previous disabled';
确实可行,但使用 jQuery 时会出现问题,$('prevBTN').className='previous disabled';
就不能实现,主要原因是$('prevBTN')
并不能得到 DOM 元素,而 className 是 DOM 里面的属性,$(selector)
只能得到满足选择器条件 DOM 元素集合,解决方法:
$('prevBTN').get(0).className='previous disabled';