11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai créée / trouvé ce code et j'aimerai le modifier pour que la couleur du fond de la div contenant le mot de la variable "search" se transforme en jaune.
Le mot contenu par "search" peut changer.
Je crois qu'il y a un truc avec Parent() mais je ne sais pas.

Posez-moi des questions si vous n'avez pas compris !
Merci beaucoup !


<div id="tout">
<div id="id1"><p></p><img src="image.png" title="description de div azerty"><br><p>azerty</p></div>
<div id="id2"><p></p><img src="image.png" title="description de div qwerty"><br><p>qwerty</p></div>
</div>

var search = 'azerty';
var replace = "<p class=\"nomDeLaClass\" id=\"search\">"+search.+"</p>";
var el = $('#tout);
var text = el.html();
text = text.split(search).join(replace);
el.html(text);

Modifié par js_html (22 Oct 2020 - 17:38)
Modérateur
Bonjour,

Si l'on suppose que l'élément <p> qui vient d'être ajouté a "search" pour id, alors on peut par exemple utiliser :
$('#search').parent().css("background-color","yellow");


Attention : il ne faut pas que plusieurs éléments d'une page aient le même id (or tu en as deux qui ont l'id "id1" dans ton exemple).

Amicalement,
Bonjour,
Merci mais ce n'est pas tout à fait ça.

Comme "azerty" devient un nouveau "p", son parent est le "p" parent.
Du coup, comment sélectionner le parent du parent (l'id et non le p) ?

Pour l'ID, merci de me l'avoir rappelé.
Dites-moi si vous n'avez pas compris.
Merci !
Modifié par js_html (26 Oct 2020 - 18:13)
Modérateur
Bonjour,

Bah, parent().parent() ! Smiley biggrin Smiley biggrin Smiley biggrin

$('#search').parent().parent().css("background-color","yellow");


Y a d'autres possibilités comme cibler le premier ancêtre qui est un <div>.

Amicalement,
Meilleure solution