首页 > 解决方案 > 如何从 html 正文内容中提取字符串并添加为 javascript 变量

问题描述

我想使用 javascript 从下面的 html 正文中提取 1234 并将这个 1234 添加为 javascript 变量。我将把这个脚本添加到多个混合了文本、图像等的 html 页面中。但是,链接都是相同的,除了 id 部分会随着每个页面而变化。页面上会有相同链接的重复,但我只需要添加一个 id 1234 的实例作为 javascript 变量。谢谢您的帮助。

基本 HTML 示例

  <html>
<body>
blah blah <p>
<a href="https://example.com/tracking.php?id=1234">example link</a>
<p>
more blah blah <a href="https://example.com/tracking.php?id=1234">duplicate link</a>
<p>
even more blah blah
</body>
</html>

标签: javascripthtml

解决方案


我创建了一个为您带来解决方案的函数。

function getparams(param, elID) {
  const href = document.getElementById(elID).getAttribute('href');
  const params = href.split("?")[1];
  const allParams = params.split('&'), paramName, i;
  for (i = 0; i < allParams.length; i++) {
    paramName = allParams[i].split('=');
    if (paramName[0] === param) {
      return paramName[1] === undefined ? true : decodeURI(paramName[1]);
    }
  }
}

然后你可以像这样使用它:

function getparams(param, elID) {
  let href = document.getElementById(elID).getAttribute('href');
  let params = href.split("?")[1];
  let allParams = params.split('&'), paramName, i;
  for (i = 0; i < allParams.length; i++) {
    paramName = allParams[i].split('=');
    if (paramName[0] === param) {
      return paramName[1] === undefined ? true : decodeURI(paramName[1]);
    }
  }
}

console.log(getparams("id", "myLink"))
console.log(getparams("anyParam", "myLink"))
<a id="myLink" href="https://example.com/tracking.php?id=1234&anyParam=124000">example link</a>


推荐阅读