Ce que j'essaie de faire est d'obtenir les éléments avec le nom de la classe Je ne sais pas comment faire cela.
J'ai essayé de googler, mais je n'ai rien trouvé, alors quelqu'un sait-on comment faire cela? P>
Mon objectif est d'avoir un menu Afficher une navigation déroulante lorsque vous avez cliqué, mais si JavaScript est désactivé, je souhaite qu'il affiche sur Hover avec CSS (j'ai déjà fait cela). P>
J'ai mis mon code sur Jsfiddle . P> no-js code> et le remplacer par js code>. p>
6 Réponses :
Dans JavaScript, vous pouvez le faire en suivant:
document.getElementById('id').add('class');
document.getElementById('id').remove('class');
-1 - JQuery n'est pas mentionné.
Et l'exemple de code est faux. Il y a ClassList Code> Interface avec Ajouter < / code> et supprimer code> méthodes, cependant.
Le premier commentaire indique que document.getElementyID ("id") code> n'est pas identique que $ ("# id") code> où jQuery méthodes tels que Ajouter code> ou Supprimer code> peut être utilisé, non pas que cette réponse devrait être i> mentionner jQuery. En outre, cela ne répond pas à la question de savoir comment "pour obtenir les éléments avec le nom de la classe no-js code> et le remplacer par js code>" i> " . ID code> n'est pas liée à cela.
ne le nom du Si vous connaissez CSS, Il y a getelementsbyclassname code> vous donne-t-il un indice qu'il doit renvoyer non un seul élément mais plusieurs éléments? Parce qu'il peut y avoir de nombreux éléments avec la même classe dans le document. Lire les documents plus attentivement. document.QuerySelectorallall code> méthode , qui récupère des éléments VIA SÉLECTEURS CSS. P> document.body.className = 'js'
Vous devez itérer les éléments retournés et remplacer cette partie du nom de la classe sur chacun: Notez que getelementsbyclassname code> renvoie une "liste en direct", C'est pourquoi il est nécessaire de commencer à effectuer une copie de la valeur de retour (à l'aide de []. Slice code>) et itérer cette liste à la place). P> P>
Merci! Je cherchais la solution getplementyid-moins pour un temps. Mon objectif était de créer ce piratage Drupal: groups.drupal.org/node/10919#Comment -1152470
Par JavaScript, vous pouvez modifier le nom de la classe en utilisant p>
Si vous souhaitez ajouter une nouvelle classe par JavaScript, utilisez P>
Si vous souhaitez remplacer le nom de la classe avec d'autres choses, utilisez des chaînes remplacer la fonction p>
document.getelementByID ('ElementID'). Nom de classe = 'Nom de classe' Code> P>
document.getelementByID ('ElementID'). Nom de classe + = 'Nom de classe' Code> P>
document.getElementByID ('ElementID'). CLASSNAME = document.getelementByID ('ElementID'). ClassName.replace (votre code de remplacement) Code> P>
Étape 1 - Obtenir l'élément par son ID est unique ID-
var attribute = document.createAttribute("class");
attribute.nodeValue = "someclassnamehere"
Element.setAttributeNode(attribute);
ressemble à une question, mais semble être la façon préférée de le faire ... strong> Exemple: strong> P> <!DOCTYPE html>
<html lang="en-US" class="no-js">
<head itemscope itemtype="http://schema.org/WebSite">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
<title>Example Site| My Site Description</title>
Mise à jour de ma réponse pour afficher le code complet aux deux parties de votre question. 1) Modifier la classe 2) FAIRE + BOUTON TOGGRY SUBNAV :)
Toutes les réponses ici sont incorrectes ou obsolètes. La réponse moderne correcte est
document.QuerySelectorall (". No-JS"). Foreach (({classlist}) => classlist.replace ("No-JS", "JS")); " . Voir Comment changer tous les éléments de classeName du nom de classe spécifique .