1
votes

Ce code javascript peut-il être écrit avec élégance?

Quelqu'un peut-il m'aider à écrire ce code avec élégance car je suis novice en javascript. J'ajoute ceci à wordpress donc j'ai déjà essayé jquery et pour une raison quelconque cela ne fonctionne pas alors j'ai essayé cette approche qui fonctionne mais je n'aime pas la façon dont elle est écrite.

Si quelqu'un pouvait m'aider à mieux écrire, ce serait formidable. Merci!

var par01 = document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[0].innerHTML;
var par02 = document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[1].innerHTML;
var par03 = document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[2].innerHTML;
var slicedPar01 = par01.slice(0, -17);
var slicedPar02 = par02.slice(0, -17);
var slicedPar03 = par03.slice(0, -17);
 document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[0].innerHTML = slicedPar01;
 document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[1].innerHTML = slicedPar02;
 document.getElementById("tt-insights-home").getElementsByClassName("excerpt")[2].innerHTML = slicedPar03;


1 commentaires

obtenir la référence à l'élément une fois, au lieu de plusieurs fois.


3 Réponses :


0
votes

Cela pourrait être comme ci-dessous:

var excerptElement = document.getElementById("tt-insights-home").getElementsByClassName("excerpt");

excerptElement[0].innerHTML = excerptElement[0].innerHTML.slice(0, -17);
excerptElement[1].innerHTML = excerptElement[1].innerHTML.slice(0, -17);
excerptElement[2].innerHTML = excerptElement[2].innerHTML.slice(0, -17);


0 commentaires

4
votes

Je ferais juste une boucle sur les extraits, alors vous ne codez pas en dur pour seulement 3 extraits exactement:

var home = document.getElementById("tt-insights-home");
var excerpts = home.getElementsByClassName("excerpt");

for (i = 0; i < excerpts.length; i++) {
  excerpts[i].innerHTML = excerpts[i].innerHTML.slice(0, -17);
}


1 commentaires

Brillant! C'est exactement ce que je voulais. Merci!



0
votes

Une petite variation sur un thème peut-être - pas testé mais semble correct.

let insights=document.getElementById( 'tt-insights-home' )
Array.from( insights.querySelectorAll('excerpt') ).foreach( node =>{
    node.textContent=node.textContent.slice(0,-17)
})


0 commentaires