javascript - 使用 JavaScript 向 url 添加参数
问题描述
我想将 url 参数添加到我的img src
,可以使用getElementById
但不能使用getElementsByClassName
. 我更喜欢使用getElementsByClassName
它,因为它对我的目的更有意义。这是我正在使用的代码:
<img id="parameter" src="http://url-to-image.com/image.jpg" style="width: 100%">
<script>
var image = document.getElementById("parameter");
var imageSrc = image.getAttribute("src");
image.setAttribute("src", imageSrc + "?w=" + viewportWidth + "&h=" + viewportHeight + "&dpr=" + dpr + "&fit=crop");
</script>
上面的代码效果很好,但是使用
<img class="parameter" src="http://url-to-image.com/image.jpg" style="width: 100%">
<script>
var image = document.getElementsByClassName("parameter");
var imageSrc = image.getAttribute("src");
image.setAttribute("src", imageSrc + "?w=" + viewportWidth + "&h=" + viewportHeight + "&dpr=" + dpr + "&fit=crop");
</script>
不会向img src
. url 参数应添加到具有“参数”类的所有图像中。如果有人可以帮助我,我会很高兴。
解决方案
正如其他人所说,getElementsByClassName总是返回列表。我认为您可以改为查看querySelector方法。
var image = document.querySelector(".parameter");
那么您无需查看列表中的第一项。
从性能 的角度来看,getElementByClass 会更快。性能测试
推荐阅读
- c++ - 未分配默认字段初始化的值
- typescript - 如何在 vue.config.js 中添加 source-map-loader
- entity-framework - 带有 ef 核心的 Linq
- amcharts - amCharts 4 - 如何确定光标是否正在显示?
- scala - Spark滑动窗口性能
- c# - 使用 octokit 从分支检索内容
- apache-kafka - 如何使用 KStreams API (Java) 添加标头
- ssl - 无法在大使上启用 TLS
- vue.js - vue-jalali-moment 过滤器在 v-for 上无法正常工作
- git - Azure DevOps Pipeline (CI) 中的 Git 问题