-3
votes

Comment supprimer une étiquette avec JavaScript

Ce que je veux réaliser est de supprimer une balise HTML avec JavaScript.

J'ai la balise HTML suivante: xxx

Ce que je veux atteindre, c'est d'obtenir débarrasser du lien. Il devrait ressembler à quelque chose comme ceci: xxx

Ce serait ma rééglementation JavaScript: xxx

mais d'une manière ou d'une autre ça ne fonctionne pas comme prévu. Peut-être que quelqu'un sait ce qu'il est faux ici?

Merci beaucoup.


13 commentaires

Commencez par n'utiliser pas Regex, mais utilisez plutôt le DOM. Vous ne travaillez pas sur les chaînes HTML, non?


Votre étiquette HTML est cassée.


Où vient-il s ?


Vous avez raison: il me manque.


Pourquoi remplacez-vous avec

test ? Il ne ressemble pas à la sortie souhaitée du tout ...


Vous ne pouvez pas créer d'éléments HTML non valides avec JavaScript. Cela invaliderait le DOM et JavaScript ne permettrait jamais que cela se produise.


La sortie est une chaîne HTML. Ceci est la sortie: 4. Januar 2019


Encore une fois, 5.januar 2019 n'est pas un élément valide et ne peut donc pas être créé en JavaScript.


@Bernd, qui est invalide HTML. Regardez les citations ...


Comme il est actuellement, cette question n'a aucun sens et je vote de la supprimer.


OK je vois. Donc, il n'y a aucune possibilité de le gérer correctement? Actuellement, la date est un lien et je ne veux pas que l'utilisateur déclenche ce lien.


Cela ressemble à un problème xy en cause ici. Si vous souhaitez désactiver une fonctionnalité cliquable d'un lien, la solution ne doit pas supprimer le "A" et laisser le reste. La solution consiste à définir son gestionnaire d'événements onclick à une fonction qui appelle event.preventdefault () ou pour définir simplement sa valeur d'attribut href sur une chaîne vide.


"Alors, il n'y a aucune possibilité de le gérer correctement?" : @Bernd, c'est la mauvaise conclusion. D'abord, votre question devrait être corrigée. Comme il vous suffit actuellement, vous ne représentez pas l'entrée de manière valide, et la sortie n'est pas non plus valide HTML. S'il vous plaît prendre du temps pour considérer cela.


3 Réponses :


0
votes

La raison pour laquelle votre regex ne fonctionne pas est que le HTML est interprété par le navigateur sur chargement et crée un modèle d'objet de document qui est une représentation d'objet, toute la logique du navigateur affecte ce modèle et que votre manipulation de chaîne n'affectera pas la page existante sauf si vous avez fait cela avant que la page soit chargée et interprétée.

Si vous connaissez la classe souhaitée, vous pouvez sélectionner l'élément, créer un nouvel élément qui n'est pas un lien et définir son texte de l'ancien élément, append Le nouvel élément sur le DOM et retirez l'ancien élément. P>

Cet extrait devrait faire ce que vous voulez. P>

let class = 'fc-list-heading-main';

let old_element = document.getElementsByClassName(class);

let new_element = document.createElement("div");

new_element.innerHTML = element.innerHTML;

new_element.classList.add(class);

document.body.insertBefore(new_element, old_element);

old_element.parentNode.removeChild(old_element);


0 commentaires

1
votes

pour supprimer l'attribut tag: xxx pré>

pour l'élément de remplacement: P>

<a class="fc-list-heading-main" data-goto="{"date":"2019-01-05","type":"day"}">5.Januar 2019</a>


0 commentaires

0
votes

Je suis vraiment désolé et je suis un .... J'ai trouvé une solution encore plus simple que de manipuler quelque chose.

Bien que, j'ai examiné la spécification de FullCalendar, je n'ai rien trouvé au début. P>

mais maintenant je l'ai vu dans mon code: P >

navLinks: true,
editable: false,...


0 commentaires