javascript / jquery - 用全局变量替换文本

时间:2014-10-03 09:53:42

标签: javascript jquery html

我已经创建了一个包含api端点,curl调用语法的api文档。它是一个纯html文档,代码块包含preblockquote标记。 目前,documnetation适用于1.0版。所以api调用如下:

https://api.xxx.com/v1

现在我们要发布下一个版本。并且网址将更改为https://api.xxx.com/v1.1,依此类推。在文档中手动更改所有URL是非常非常的。 所以我创建了一个如下所示的全局变量,并认为只有一个更改将反映到文档中的所有URL。

window._respapiurl = "https://api.xxx.com/v1";

我的方法是更改​​变量中的版本号,以便它适用于所有网址。

并尝试将pre标记替换为<pre class="highlight plaintext"><script>window._respapiurl</script></pre>。但由于pre标记的行为,它无法正常工作。

如何用全局变量???

替换文档中的所有网址

1 个答案:

答案 0 :(得分:1)

1)您可以在PHP中使用一些设置文件并在那里设置版本URL,因此您只需更改版本变量。

$appVersion = '1.1';
echo "https://api.xxx.com/v{$appVersion}";

2)使用带占位符的网址,以便循环并替换它:

$(document).ready(function() {
  var appVersion = '1.1';

  $.each($("span.versionLink"), function() {
    var newText = $(this).text().replace("{version}", appVersion);
    $(this).text(newText);
  });

  $.each($("a.versionLink"), function() {
    var newLink = $(this).attr("href").replace("{version}", appVersion);
    $(this).attr("href", newLink)
  });
});

<pre>
  <span class="versionLink">https://app/v{version}</span>
  <a href="https://app/v{version}" class="versionLink">Link to another documentation</a>
</pre>