【问题标题】:How can i remove just the text from link我怎样才能从链接中删除文本
【发布时间】:2021-03-05 15:04:22
【问题描述】:

我只需要删除文本( Ajouter aux favouris ) 在上面的链接中,而不使用 javascript (no jquery) 删除 span 或其他标签。

问题是,这只适用于单个元素(截图如下)

我有 6 个 div (.syno21-teaser--item),每个都有<div class="syno21-actu--favoris">

        <div class="syno21-teaser--wrapper">
    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>

    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>


    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>


    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>


    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>


    <div class="syno21-teaser--item">
        <article data-history-node-id="2451" data-quickedit-entity-id="node/2451" role="article" class="contextual-region" about="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" data-quickedit-entity-instance-id="1">
            <div data-contextual-id="node:node=2451:changed=1552987642&amp;langcode=fr" data-contextual-token="UYOdl1jQW4O3NVY1yTvlA--KZZuSPgLUQSj9L44auww" class="contextual">
                <button class="trigger visually-hidden focusable" type="button" aria-pressed="false">options de configuration Ouvert
                </button>
                <ul class="contextual-links" hidden="">
                    <li class="entitynodeedit-form">
                        <a href="/node/2451/edit?destination=/node/2681">Modifier</a>
                    </li>
                    <li class="entitynodedelete-form">
                        <a href="/node/2451/delete?destination=/node/2681">Supprimer</a>
                    </li>
                </ul>
            </div>

            <div class="syno21-actu--teaser">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <div data-quickedit-field-id="node/2451/field_synoptic_img/fr/teaser">
                        <img src="/sites/synoptic/files/styles/bloc_actualite/public/securite_reseau_0_1.png?itok=zGIhuZxv" width="353" height="209" typeof="foaf:Image">
                    </div>
                </a>
                <div class="syno21-actu--date-Thematique">
                    <div class="syno21-actu--date">
                        19 mars 2019
                    </div>
                    <div data-quickedit-field-id="node/2451/field_synoptic_thematique/fr/teaser">
                        <div>
                            <a href="/taxonomy/term/20" hreflang="fr">Cybersécurité</a>
                        </div>
                    </div>
                </div>
                <div class="syno21-vues-likes-favoris">
                    <span class="responsable">Responsable : Crosnier, Florian</span>
                </div>

                <div class="syno21-actu--vues"></div>
                <div class="syno21-actu--likes">
                    <div class="content-like text-center mt-20 mb-30">
                        <div class="flag flag-like js-flag-like-2451 action-flag">
                            <div class="count-like"></div>
                        </div>
                    </div>
                </div>
                <div class="syno21-actu--favoris">
                    <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
                        <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
                            <span></span>
              Test 1
                        </a>
                    </div>
                </div>
            </div>


            <h3 class="syno21-actu-actu--subtitle">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">
                    <span data-quickedit-field-id="node/2451/title/fr/teaser">Promulgation de l'arrêté relatif au cahier des clauses simplifiées de cybersécurité</span>
                </a>
            </h3>

            <div class="syno21-actu-actu--body"></div>

            <div class="syno21-icon-plus">
                <a href="/securite-des-systemes-dinformation/promulgation-de-larrete-relatif-au-cahier-des-clauses" target="_blank">+</a>
            </div>
        </article>
    </div>

</div>

我的 JS:

  var allElements = document.querySelectorAll(".syno21-teaser--wrapper .syno21-teaser--item");

      var vues = document.querySelector(".syno21-actu--vues");
      var likes = document.querySelector(".count-like");
      var favoris = document.querySelector(".syno21-actu--favoris a");

    for (var i = 0; i < allElements.length; i++) {
      var element = allElements[i];

      for (var j = 0; j < element.children.length; j++) {
        // var child = element.children[i];
        // console.log("child", child);
        element_vues = element.getElementsByClassName("syno21-actu--vues")[0];
        element_likes = element.getElementsByClassName("count-like")[0];
        element_favoris = element.getElementsByClassName("use-ajax")[0];

      console.log("aaa :------------------ ",  element_favoris);

      }


      element_vues.innerHTML = '';
      favoris.innerHTML = '';
      element_favoris.innerHTML = '';

      console.log("---- ", element_favoris);
    }

谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    更新了完整答案

    function removeOnlyText() {
      const allfavoris = document.querySelectorAll('.syno21-teaser--item .syno21-actu--favoris');
    
      allfavoris.forEach(favoris => {
    
        const anchor = favoris.querySelector('a');
        //Get all other html elements/tags
        const otherElements = anchor.querySelectorAll('*');
        //Empty everything
        anchor.innerHTML = '';
        //Reinsert only html elements/tags
        otherElements.forEach(otherElement => anchor.appendChild(otherElement));
    
      });
    }
    <button onclick="removeOnlyText()">Remove only text</button>
    
    <div class="syno21-teaser--item">
    
      <div class="syno21-actu--favoris">
        <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
          <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
            <span>This is a span element, don't remove</span>
            Ajouter aux favoris
          </a>
        </div>
      </div>
      
      <div class="syno21-actu--favoris">
        <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
          <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
            <span>This is a span element, don't remove</span>
            Ajouter aux favoris
          </a>
        </div>
      </div>
      
      <div class="syno21-actu--favoris">
        <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
          <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
            <span>This is a span element, don't remove</span>
            Ajouter aux favoris
          </a>
        </div>
      </div>
      
      <div class="syno21-actu--favoris">
        <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
          <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
            <span>This is a span element, don't remove</span>
            Ajouter aux favoris
          </a>
        </div>
      </div>
    
    </div>

    【讨论】:

    • 请看一下我的 js,我不能在 element.getElementsByClassName 中使用锚(在我的情况下是 'favoris')
    • OP 想要保留 &lt;span&gt; 元素。
    • @SameerKhan 谢谢,但它只适用于一项,这里我有 div (.syno21-teaser--item),每个都有&lt;div class="syno21-actu--favoris"&gt;
    • @SameerKhan 我添加了截图
    • @mitsu 用多个元素更新了答案
    【解决方案2】:

    你有两种方法。简单的方法是清除.innerText 属性。但是如果你想安全起见,你应该遍历一个元素的childNodes,然后删除子节点,如果它的“类型”是text

    const a = document.querySelector('a');
    
    console.log(`before --- textContent: "${a.textContent}"`, `childNode: ${a.children[0]}`);
    
    a.childNodes.forEach((node) => node.nodeName.includes('#text') && node.remove());
    
    console.log(`after --- textContent: "${a.textContent}"`, `childNode: ${a.children[0]}`);
    <a title="" href="/flag/flag/favoris/2451?destination&amp;token=b9Wrl6d8m3LsUnQSjMtJVIijAc4Yxc4x-Ky1JX4rwr4" class="use-ajax" rel="nofollow">
      <span></span>
      Ajouter aux favoris
    </a>

    【讨论】:

    • 嘿@Samuli,这有效,但仅适用于 allElements 中的一项:(
    【解决方案3】:

    删除文本类型的子节点:

    const removeText = (element) => {
      element.childNodes
        .forEach( child => {
          if(child.nodeName === '#text')
            child.remove()
        });
    }
    
    // ...
          removeText(element_vues);
          removeText(favoris);
          removeText(element_favoris);
    
          /* Alternative:
          [element_vues, favoris, element_favoris]
            .forEach( removeText )
          */
    // ...
    

    您甚至可以使其递归,因此它会从节点及其所有后代中删除所有文本节点:

    // Defaults to NOT recurse to maintain syntax with above version
    const removeText = (element, recursive=false) => {
      element.childNodes
        .forEach( child => {
          if(child.nodeName === '#text') {
            child.remove()
          }
          else if (recursive && child.childNodes.length) {
            removeText(child, recursive);
          }
        });
    }
    

    【讨论】:

    • 仅供参考,我让你投票是因为你的策略比我的还要好,而且你击败了 Samuli Hakoniemi。但我撤回了,因为我认为您的编辑虽然更笼统,但不太清楚。
    • 我刚刚集成到OP编辑发布的新代码中......
    • 当我这样做时,我一定没有看到编辑。有你的 +1。尽管您知道我认为您可能需要在我们的 forEach lambda 主体周围放置大括号。
    • forEach lambda body 周围添加了大括号。
    【解决方案4】:

    执行此操作的简单方法是扭曲链接文本并通过装饰 id 使其独一无二,然后按照提到的简单步骤进行操作

    const text = document.getElementById("link-text-id");
    
    text.innerHTML = "";
     
    
     <div class="syno21-actu--favoris">
        <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
           <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
            <span></span>
            <span id="link-text-id">Ajouter aux favoris</span>
          </a>
        </div>
     </div>
    

    希望对你有帮助

    【讨论】:

    • Charles Lavalard 已经给出了这个答案,并且 OP 说他无法更改 HTML。
    【解决方案5】:

    您可以在带有 id 的标签中添加文本并从中删除文本

        const text = document.getElementById("fav");
        text.innerHTML = "";
    
         <div class="syno21-actu--favoris">
            <div class="flag flag-favoris js-flag-favoris-2451 action-flag">
               <a title="" href="/flag/flag/favoris/2451" class="use-ajax" rel="nofollow">
                <span></span>
                <span id="fav">Ajouter aux favoris</span>
              </a>
            </div>
         </div>
    

    【讨论】:

    • 不能那样做,我没有 html 权限,我只能在 js 中这样做
    • 所以 innerText 是你的答案我猜
    • InnerText 也移除标签
    • 它有效,但仅适用于 allElements 中的一项:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2014-07-24
    • 2013-12-26
    • 2016-01-31
    • 2023-01-28
    • 1970-01-01
    相关资源
    最近更新 更多