包装文本 ="someClass"的每一次出现-6ren"> 包装文本 ="someClass"的每一次出现-我有货币“Rs”。发生在我网站的多个地方。我想用 . 包装每次出现的文本但是如果它已经用 包裹起来了它应该被忽略。 我不能使用 $('*:contains("Rs.")').wrap("Rs.");-6ren">
gpt4 book ai didi

javascript - 用 包装文本 ="someClass"的每一次出现

转载 作者:可可西里 更新时间:2023-11-01 13:39:23 25 4
gpt4 key购买 nike

我有货币“Rs”。发生在我网站的多个地方。我想用 <span class="WebRupee">. 包装每次出现的文本但是如果它已经用 <span class="WebRupee"> 包裹起来了它应该被忽略。

我不能使用 $('*:contains("Rs.")').wrap("<span class=\"WebRupee\");因为这将 html 包裹在包含 Rs 的节点周围。但不仅仅围绕文本。出于同样的原因,我不能使用 .wrapInner();

再次感谢您的帮助!

编辑:webrupee 网站上提供的 javascript 在我的网站上不起作用(不知道为什么)。所以这是不可能的解决方案。因此我想到了编写自定义 javascript。只是不知道我该如何处理。

编辑(2): 大声思考 - 嗯,有没有办法在 indexOf("Rs.") 处添加 html .. 或者类似的方法

最佳答案

首先,您要做的是肮脏的黑客攻击。

您应该在源代码中修复它,无论它是什么(例如 PHP 后端、Ruby 后端、纯 HTML 等...)。

查看这个工作在 http://jsfiddle.net/8jXLw/ 的例子

我做了很多假设和简化,你的正则表达式应该更完整。

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);
});
});

关于javascript - 用 <span class "Rs."> 包装文本 ="someClass"的每一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7468801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com