查找文本并使用jQuery删除

时间:2017-04-12 20:02:13

标签: javascript jquery html

如何查找和删除html文件中的特定文本?

我已经找到了一个代码,但是如果在HTML文件中有像“/”或“()”这样的chark,我觉得它不起作用。

我的HTML代码

<label>Text 1 (Blue/White/Green)</label>

我的剧本

$("label").children().each(function() {
    $(this).html($(this).html().replace(/'(Blue/White/Green)'/g,""));
});

5 个答案:

答案 0 :(得分:1)

你只需要在正则表达式中转义斜杠(和parens),以及删除撇号。其次,您正在寻找不存在的孩子,因为文本不在子节点内,而是标签节点的内容,因此删除.children()过滤器将使其工作:

$("label").each(function() {
    $(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});

如果您对使用正则表达式不感兴趣,您也可以使用替换方法替换字符串,但是如上所述,这只会替换第一个实例:

$("label").each(function() {
        $(this).html($(this).html().replace('(Blue/White/Green)',""));
    });

答案 1 :(得分:0)

您应该删除children()。你需要迭代标签元素。不是在孩子身上

$("label").each(function() {
    $(this).html($(this).html().replace(/\(Blue\/White\/Green\)/g,""));
});

这应该有效

https://jsfiddle.net/L4b2m3a5/1/

答案 2 :(得分:0)

您必须使用反斜杠/转义斜杠()和括号\,您还应删除单引号'.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>

答案 3 :(得分:0)

你走了!

{{1}}

答案 4 :(得分:0)

$(":contains('text-to-remove')").contents().filter(function () {
  return (this.nodeType == 3 && $.trim(this.nodeValue) == 'text-to-remove');
}).remove();

来自其他海报