0
votes

À l'aide de JavaScript natif, modifiez l'attribut title d'un objet s'il a une certaine classe CSS

Alors, en utilisant du javascript natif, comment pourrais-je dire "si cet objet a cette classe css, ajoutez ceci à l'attribut title"

document.addEventListener("DOMContentLoaded", function(event) { 
    if(element.classlist.contains("current_page_item")||element.classlist.contains("current-page-ancestor")){

    }
});

C'est tout ce que j'ai obtenu, j'essaie de m'en tenir au javascript natif juste pour que nous ne n'a pas à charger de bibliothèques et peut garder le site aussi minimaliste que possible.


2 commentaires

element.title + = "encore du contenu"


Je suis toujours mauvais pour poser des questions ... alors je peux faire cette partie et l'avoir fait. Mais l'élément n'est pas défini. Alors, comment puis-je lui dire quels éléments vérifier? Idéalement, je suppose que ce ne serait que des liens, ou simplement les liens dans le div avec la classe "menu-primary-menu-container"


4 Réponses :


1
votes

Vous pouvez utiliser getElementsByClassName ()

for (var i = 0; i < x.length; i++) {
    var y = x[i].getElementsByTagName("a");
    y[0].title = "title";
}

Puis bouclez et ajoutez un titre

for (var i = 0; i < x.length; i++) {
    x[i].title ="title";
}

ou

x.forEach(function(element){
   element.title = "title";
});


3 commentaires

Hmm, il dit x.forEach n'est pas une fonction


ajouter constamment de la portée .... donc autre que forEach disant que ce n'est pas une fonction. Comment appliquer le titre à l'élément "a" qui est un enfant de l'élément div qui a la classe "current_page_item"?


var y = x [0] .getElementsByTagName ('a'); Puis y [0] .title = "title"



0
votes

Semblable à la réponse de Rohit Shetty, vous pouvez également utiliser le querySelector:

let elements = document.querySelector(".current_page_item");
elements.forEach(function(e) {
  e.title = "title";
);


0 commentaires

0
votes

Vous pouvez utiliser getElementsByClassName ()

var x = document.getElementsByClassName("current_page_item");
for(var i=0;i<x.length;i++){
    x[i].title += "BLAH";
}


0 commentaires

0
votes

Je ne sais pas maintenant si j'ai bien compris.

Mais essayons. Commencez par localiser les éléments.

function containsOfTheClasses (node) {
    return classNames.some(x => node.classList.contains(x))
}

nodes.forEach(function (node) {
    node.title += classNames.filter(containsOfTheClasses).join(' ')
})

Ensuite, appliquez les noms de classe au titre.

const nodes = document.querySelectorAll('.current_page_item, .current_page_item')
// nodes are the elements of one of the classes names


0 commentaires