javascript - 如何在每次执行替换代码时获取随机数?

标签 javascript jquery html random

我正在编写一个 JavaScript 函数,该函数查看网页并用我创建的数组中的随机字符串替换价格的每个实例。每次我在网页上运行脚本时,都会从数组中选择不同的字符串,但它会为替换方法的每个实例选择相同的字符串。我怎样才能让每次替换选择一个随机数?实际上,我曾经一度可以使用此功能,但我必须更改代码,现在它重复相同的字符串。

这是我的代码:

$("*").each( function() { //go through each paragraph
    var curr = $(this).html();

    var price = Math.floor(Math.random() * pricesArray.length);
    curr = curr.replace(/(\$[0-9]+\.[0-9]{2})+/g, pricesArray[price]);
    console.log(curr);
    $(this).html(curr); //update paragraph text
});

最佳答案

$('*')将匹配<html> , <body>等。第一个匹配项 ( <html> ) 将对页面中的所有价格执行替换,因为它们都包含在其中。假设随机字符串不是价格,仅此而已,无需替换。

您可以通过为每个匹配调用替换函数来实现此目的,而不是为每个节点选择一个新字符串:

var pricesArray = ['thing one', 'thing two', 'thing three', 'thing four'];

var text = document.body.innerHTML;

text = text.replace(/(\$[0-9]+\.[0-9]{2})+/g,
  function() {
    var repno = Math.floor(Math.random() * pricesArray.length);
    return pricesArray[repno];
  }
);

document.body.innerHTML = text;
<p>$5.99</p>
<p><b>$7.97</b></p>
<p>A price ($14.92) within some text, followed by another price ($17.76).</p>

关于javascript - 如何在每次执行替换代码时获取随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553793/

相关文章:

javascript - Ui-router - {slug} 和 :slug 之间的区别

javascript - 在 jquery 选择器中使用 javascript 变量

javascript - JSliderNews jQuery 插件通告

c# - 我们可以将 xml 文档返回到客户端应用程序,而不是将其保存在特定目的地吗

JavaScript 仅适用于实际的表格页面

html - div不占全高

javascript - Stripe/node.js : how retrieve stripe subscription safely + increment 1

javascript - Jquery 自己的 Html 文本编辑器

jquery - 可调整大小的 div 内的 div 内的文本溢出 float div

javascript - 尝试制作一个导航栏,但出了点问题