替换" $"的一个实例(美元符号)与HTML标记

时间:2017-11-21 15:30:46

标签: javascript jquery html schema.org

我试图在我的e-com网站上添加HTML标签。例如:对于$5.00,我想在$5.00之间添加标记,但我找不到核心文件,无法在这两个文件之间放置任何代码元素。我可以访问的文件只有一个通用标记,可以从另一个文件(我无法找到)中提取包括货币标记在内的全部价格。

我以为我尝试用$5替换$<span itemprop="price">5</span>,但我不知道怎么写。我的JS技能只能复制和粘贴。

有人可以帮助或建议更好的方法吗?这是针对架构标记,但谷歌给我一个错误,因为货币标记位于价格itemprop标记内。

1 个答案:

答案 0 :(得分:1)

基本的jQuery来做你想要的。

但我认为你需要重新评估你将如何做这项工作,以及你将要做的事情。它不应该在javascript中完成,它绝对应该由知道他们正在做什么的开发人员完成。你还需要为你的用例修改它,确保它只在你想要它的部分上运行,了解如何添加jQuery(如果它还没有)(我认为是)。

它也可以在普通的javascript中轻松完成,如果你愿意,我会把它写出来。

在我完全理解之前:

http://jsbin.com/rahayobimo/edit?html,css,js,output

$('.price-line').each(function () {
  $(this).html($(this).html().replace('$', '<span>$</span>'))
});

我意识到它需要一些稍微更复杂的东西:

http://jsbin.com/xejipeg/1/edit?html,css,js,output

$('.price-line').each(function () {
  $(this).html($(this).html().replace(/\$(\d+(\.\d\d)*)/g, '$<span itemprop="price">$1</span>'))
});

第二个使用正则表达式,它检查类似美元的字符串。所以有一个美元,然后是数字和可能的小数位。然后它需要第二组(在此标记为$1),将其包装在您的标签中并在开头粘贴一个实际的美元符号。

我假设你只使用美元?如果没有,请将替换功能的第一部分中的$更改为[$£€]

在这个意义上,Javascript并不是一个安全问题。它只是凌乱而且比其他任何事情都更容易失败。实际上,您应该从后端获取原始数据,因为它来自并在那里格式化。然后你肯定知道什么是价格,什么是货币符号。

另一个问题是javascript在初始页面加载后运行。因此,这些跨度标签将在技术上稍后添加。许多搜索引擎(我认为,为什么你要添加这个标签)不会看到基于运行的javascript的页面,只有从服务器传递的HTML。这是制作完全使用javascript生成的网络应用程序的人的祸根。

不幸的是,我不知道.net或dotnetnuke。但我知道在其他语言中你会做类似的事情:

  • 您将变量currency_symbolprice发送到模板文件
  • 模板文件将获取这些值,格式化它们并创建正确的HTML

例如:

<span class="symbol">{{ symbol }}</span><span class="price" itemprop="price">{{ price }}</span>

不容错误,可以缓存,更好的SEO,更低的失败率,没有客户端依赖等等。