Comment ajoutez-vous et supprimez-vous «caché» de <p hidden>My Text<\p>? J'ai essayé de supprimer l'attribut et de le définir sur false, mais aucun d'eux n'a fonctionné.

  let p = document.getElementsByTagName('p');
  let myText;

  for (i = 0; i < p.length; i++) {
    if (p[i].innerHTML == "My Text") {
      myText = p[i];
      break;
    }
  }

  myText.removeAttribute("hidden"); // no effect
  myText.setAttribute("hidden", false); // no effect
6
CptHowdyRD0 15 avril 2018 à 00:32

4 réponses

Meilleure réponse

Ça a l'air bien ici. Essayez avec ce code si vous le souhaitez.

Index.html

<html>
<head>

</head>
<body>
      <p hidden>My Text</p>
</body>
</html>

Scénario

let p = document.getElementsByTagName('p');
let myText;

for (i = 0; i < p.length; i++) {
  if (p[i].innerHTML == "My Text") {
    // console.log(myText, p[0].innerHTML);
    myText = p[i];
    break;
  }
}

myText.removeAttribute("hidden"); 

Vous pouvez voir dans codePen https://codepen.io/anon/pen/qozVaq

5
Wesley Gonçalves 14 avril 2018 à 21:52

Pourriez-vous définir un ID sur la balise p et interagir avec lui de cette façon?

<p id="whatever" hidden>My Text</p>

Et:

let p = document.getElementById('whatever');
p.removeAttribute("hidden");
3
John Luscombe 14 avril 2018 à 21:59

Supprimer le texte de comparaison me convient:

let p = document.getElementsByTagName('p');
    let myText;
    for (i = 0; i < p.length; i++) {
        var txt = document.getElementsByTagName('p')[i].innerHTML;
        if (p[i].innerHTML == txt) {
            myText = p[i];
            break;
        }
    }

myText.removeAttribute("hidden");

Voici la version de travail: https://jsfiddle.net/j0467m8m/15/

0
ritesh.p 14 avril 2018 à 22:09
function show(){
x = document.getElementsByTagName('p');
if(x[0].style.visibility === "hidden"){
   x[0].style.visibility = "visible"   
 }else{
   x[0].style.visibility = "hidden"  
}}
<p >this is hidden</p>
<button onClick='show()'>show</button>
0
DCR 15 avril 2018 à 01:12