我設定了一個元素的 class ,現在想透過 JavaScript 更改該元素的 class ,我試過 jQuery 的 attr 修改 class 屬性不行。
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
:li
添加属性disabled
可以这样做,不是添加class
而是attr
:$('#prevBTN').attr('disabled', true);
$('#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';