查找文本并使用jQuery删除
问题描述:
如何查找和删除html文件中的特定文本?查找文本并使用jQuery删除
我已经找到了一个代码,但是我认为如果HTML文件中有像“/”或“()”这样的charkter,它就不起作用。
我的HTML代码
<label>Text 1 (Blue/White/Green)</label>
我的脚本
$("label").children().each(function() {
$(this).html($(this).html().replace(/'(Blue/White/Green)'/g,""));
});
答
您对逃避斜线/
和使用antislash \
括号()
,你也应该删除单引号'
和.children()
也:
$("label").each(function() {
$(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});
希望这可以帮助。
工作片段:
$("label").each(function() {
$(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Text 1 (Blue/White/Green)</label>
答
你只需要逃避的正则表达式的斜杠(括号及),以及除去撇号。其次,你要寻找的是不存在的,因为文字是不是一个子节点中的孩子,但标签节点的内容,所以去除.children()
过滤器将使其工作:
$("label").each(function() {
$(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});
如果你是不是有兴趣使用正则表达式,你也可以用字符串中使用替代方法来代替,但正如写这只会替换第一个实例:
$("label").each(function() {
$(this).html($(this).html().replace('(Blue/White/Green)',""));
});
答
您应该删除children()
。你需要迭代标签元素。不是其子
$("label").each(function() {
$(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});
这应该工作
答
在这里你去!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('label').each(function() {
var text = $(this).text();
$(this).text(text.replace('(Blue/White/Green)', 'NOTHING'));
});
});
</script>
</head>
<body>
<label>Text 1 (Blue/White/Green)</label>
</body>
的正则表达式中有报价,但是你要替换文本没有。您还需要避开斜杠。 – Barmar