2017-04-12 61 views
0

如何查找和删除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,"")); 
}); 
+0

的正则表达式中有报价,但是你要替换文本没有。您还需要避开斜杠。 – Barmar

回答

0

您对逃避斜线/和使用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>

1

你只需要逃避的正则表达式的斜杠(括号及),以及除去撇号。其次,你要寻找的是不存在的,因为文字是不是一个子节点中的孩子,但标签节点的内容,所以去除.children()过滤器将使其工作:

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

如果你是不是有兴趣使用正则表达式,你也可以用字符串中使用替代方法来代替,但正如写这只会替换第一个实例:

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

删除撇号 – Barmar

+0

将无法​​使用_.children()_。 –

+0

为什么它不起作用?:http://jsfiddle.net/jphmx5rv/ – RollzRoyce

0

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

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

这应该工作

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

0

在这里你去!

<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>