javascript - 如何从 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>
解决方案
我创建了一个为您带来解决方案的函数。
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>
推荐阅读
- graphql - Gatsby 无法为所有数据库项创建静态页面
- python - 从 Python 中的许多选项中进行选择的干净方法
- python - Python - RobotFramework - 查询结果中没有
- java - 使用 exec-maven-plugin 进行调试
- r - 如何将一个非常大的 .dat 文件拆分为 XML 文件?
- html - 我如何给一个html div位置动态高度
- oracle - 是否有任何存储 Oracle APEX 使用日志的表
- java - 如何将所选电影的数据获取到detailActivity,然后获取到详细活动中的片段?
- python - 从jpg文件恢复灰度图像
- python - 在python中,如果抛出错误,我如何重新运行函数