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';
假設(shè)元素
<p class="className" id="idValue"></p>
可以這樣改
var e = document.getElementById('idValue')
if (e) {
e.className = "changedClassName"
}
屢試不爽。
jQuery把document.getElementById('idValue')
改成$('#idValue')
就好啦
HTML:
<p id="id_test" class="old-bootstrap">
JS:
$('#id_test').className='new_class';
不是通過attr
,而是通過className
PS:
如果你想為li
添加屬性disabled
可以這樣做,不是添加class
而是attr
:$('#prevBTN').attr('disabled', true);
去除attr:
方案1:a標簽不支持disabled屬性,所以你把a標簽換成button標簽就可以了:http://www.w3school.com.cn/ti...
方案2:用a標簽也可以,去除它的href屬性就可以實現(xiàn)不能點擊的效果,即$('#prevBTN').removeAttr('href');
參考:你把下面這段代碼拿到這個上面運行
<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js"></script>
<script>
function test() {
$('#id_test').removeAttr('href');
}
</script>
</head>
<body>
<nav>
<ul class="pager" id="pageCtr">
<li class="previous" id="prevBTN">
<a href="#" id="id_test" onclick="prevPage()"><span>←</span>前一頁</a>
</li>
</ul>
</nav>
<button id="id_test2" onClick="test()">disable</button>
</body>
</html>
樓主的代碼是怎樣的?
為什么我這里直接用attr()來設(shè)置class是可以的呢?
另外,jQuery還有addClass()和removeClass這兩個方法,操作class 我一般用這兩種方法。
感謝 @daryl 和 @tony_yin 的熱心解答,我自己也想用吧 <li>
標簽里面的 <a>
換成 <button>
,能實現(xiàn)禁用按鈕效果,但是 .pager
的 BootStrap 默認樣式會變化;
將<li class="previous" id='prevBTN'>
換成 <li class="previous disabled" id='prevBTN'>
使用 document.getElementById('prevBTN').className='previous disabled';
確實可行,但使用 jQuery 時會出現(xiàn)問題,$('prevBTN').className='previous disabled';
就不能實現(xiàn),主要原因是 $('prevBTN')
并不能得到 DOM 元素,而 className 是 DOM 里面的屬性,$(selector)
只能得到滿足選擇器條件 DOM 元素集合,
jQuery() (or $()) with an id selector as its argument will return a jQuery object containing a collection of either zero or one DOM element.
解決方法:$('prevBTN').get(0).className='previous disabled';