J'ai défini la classe d'un élément, et maintenant je veux changer la classe de l'élément via JavaScript. J'ai essayé l'attr de jQuery pour modifier l'attribut de classe, mais cela n'a pas fonctionné.
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';
Éléments hypothétiques
Vous pouvez le changer comme ça
Essayé et testé.
jQuery juste
document.getElementById('idValue')
改成$('#idValue')
et c'est prêtHTML :
JS :
Pas via
attr
, mais viaclassName
attr
,而是通过className
PS:
如果你想为
li
添加属性disabled
可以这样做,不是添加class
而是attr
:$('#prevBTN').attr('disabled', true);
去除attr:
Supprimer l'attribut : 🎜Quel est le code de l'affiche originale ?
Pourquoi puis-je utiliser directement attr() pour définir la classe ?
De plus, jQuery dispose également de deux méthodes : addClass() et removeClass. J'utilise généralement ces deux méthodes pour faire fonctionner les classes.
jQuery a des méthodes spéciales pour les classes d'exploitation, vous pouvez consulter l'API correspondante
Merci à @daryl et @tony_yin pour leurs réponses enthousiastes. Je souhaite l'utiliser moi-même. Remplacez
<a>
dans la balise<a>
par. <button> ;
, peut avoir pour effet de désactiver les boutons, mais le style par défaut de BootStrap de.pager
changera ;change
<li class="previous" id='prevBTN'> ;
Remplacer par<li class="précédent désactivé" id='prevBTN'>
Utiliserdocument.getElementById('prevBTN').className ='previous désactivé';
C'est effectivement possible, mais il y aura des problèmes lors de l'utilisation de jQuery.$('prevBTN').className='previous désactivé';
ne peut pas être implémenté. la raison principale est que$('prevBTN ')
ne peut pas obtenir l'élément DOM et que className est un attribut du DOM$(selector)
ne peut obtenir que l'ensemble du DOM. les éléments qui répondent aux conditions du sélecteur,<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 元素集合,解决方法:
🎜Solution :$('prevBTN').get(0).className='previous disabled';
$('prevBTN').get(0).className='previous désactivé';
🎜