根据内部文本删除相似的 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>')
);
我有 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>')
);