根据内部文本删除相似的 html 标签

removing similar html tags based on their inner text

我有 2 个不同的脚本标签:

<script>//</script>
<script>//data</script>

我想删除第一个。所以我使用了以下内容:
$("script").filter(":contains('//')").remove();
但是上面的行删除了两者。 我怎样才能删除第一个。

:contains 表示字符串中的任意位置

如果它只包含“//”,这将删除它

$("script")
  .filter(function () { return this.textContent.trim() === "//" })
  .remove();

要删除第一个带有 // 的脚本,您可以使用 .eq

$("script")
  .filter(":contains('//')")
  .eq(0)
  .remove();

.filter() 方法是 return 一个数组。所以如果你想删除第一个,你必须像数组一样select。

$("script").filter(":contains('//')")[0].remove();

 function stripScripts(s) {
    var div = document.createElement('div');
    div.innerHTML = s;
    var scripts = div.getElementsByTagName('script');
      scripts[0].parentNode.removeChild(scripts[0]);
    return div.innerHTML;
  }

alert(
 stripScripts('<span><script type="text/javascript">alert(\'foo\');<\/script> <script type="text/javascript">alert(\'foo\');<\/script><\/span>')
);