我的货币是“卢比”。发生在我网站上的多个地方。我希望用<span class="WebRupee">.
包装文本的每一个匹配项但如果它已经用<span class="WebRupee">
包装,则应该忽略它。
我无法使用$('*:contains("Rs.")').wrap("<span class=\"WebRupee\");
,因为这会将html包装在包含Rs的节点周围。但不是单靠文本。出于同样的原因,我无法使用.wrapInner();
再次感谢任何帮助!
编辑: webrupee网站上提供的javascript在我的网站上不起作用(不知道为什么)。所以这不是一个解决方案。因此我想写一个自定义的JavaScript。只是不知道我怎么能接近这个。
编辑(2):大声思考 - 嗯有没有办法在indexOf(“Rs。”)添加html ..或者一种类似的方法
答案 0 :(得分:1)
使用http://cdn.webrupee.com/js文件。它工作正常。我用过一个网站。 如果你想下载和自定义一点.. 感谢..
答案 1 :(得分:1)
首先,你要做的是一个肮脏的黑客。
您应该在源代码中修复它,无论它是什么(例如PHP后端,Ruby后端,纯HTML等)。
工作的示例我做了很多假设和简化,你的正则表达式应该更完整。
var spanit = function(item) {
var $item = jQuery(item);
var regexp = /\d+ Rs\./;
var text = $item.text();
if (!regexp.test(text)) {
return;
}
if ($item.has(".WebRupee").length) {
return;
}
var new_text = text.replace(" Rs."," <span class='WebRupee'>Rs.</span>");
$item.html(new_text);
};
jQuery(function() {
$("p.test").each(function() {
spanit(this);
});
});
答案 2 :(得分:0)
非常低效的解决方案
var replaced = $("body").html().replace('Rs.','<span class="WebRupee">Rs.</span>');
$('body').html(replaced);
var replaced = $("body").html().replace('<span class="WebRupee"><span class="WebRupee">Rs.</span></span>','<span class="WebRupee">Rs.</span>');
$('body').html(replaced);