详细信息:
嗨,专家们。我想仅使用javascript更改现有的HTML主题,并且在使用javascript更改HTML元素的href时遇到问题。但似乎我什至无法通过ClassName来获取元素,因为下面的javascript代码的console.log值显示为0长度。请帮助我如何修复代码。 (请注意,我无法编辑现有的HTML代码,只能编写JavaScript的自定义代码)。最好的问候
我的JavaScript如下:
var x8 = document.getElementsByClassName("slrofrpg-srvcs-backbtn");
console.log("length=",x8.length); --1st console
if (x8.length > 0){
console.log("ENTERED. length=", x8.length); --2nd console
x8[0].href = "javascript:history.back()";
}
我的HTML如下(部分内容):
<div class="slrofrpg-service-btn">
<a class="slrofrpg-srvcs-backbtn" href="javascript:void(0);">Back
</a>
<!-- react-text: 219 -->
<!-- /react-text -->
<a class="slrofrpg-srvcs-offerbtn" href="javascript:void(0);">Send now
</a>
</div>
第一个控制台日志结果:
length=0
第二个控制台日志结果:无结果
答案 0 :(得分:1)
代码在这里工作正常。您的脚本在加载html之前运行。您可以
<script>
标签移到<body>
的末尾window.onload
事件
window.onload = function(){
var x8 = document.getElementsByClassName("slrofrpg-srvcs-backbtn");
console.log("length=",x8.length);
if (x8.length > 0){
console.log("ENTERED. length=", x8.length);
x8[0].href = "javascript:history.back()";
}
}
<div class="slrofrpg-service-btn">
<a class="slrofrpg-srvcs-backbtn" href="javascript:void(0);">Back
</a>
<!-- react-text: 219 -->
<!-- /react-text -->
<a class="slrofrpg-srvcs-offerbtn" href="javascript:void(0);">Send now
</a>
</div>
答案 1 :(得分:0)
似乎您在加载dom之前正在运行javascript。在body标签的结尾附近添加javascript或添加外部js文件
<body>
// html code
<script>
//js code here
</script>
</body>
var x8 = document.getElementsByClassName("slrofrpg-srvcs-backbtn");
console.log("length=", x8.length);
if (x8.length > 0) {
console.log("ENTERED. length=", x8.length);
x8[0].href = "javascript:history.back()";
}
<div class="slrofrpg-service-btn">
<a class="slrofrpg-srvcs-backbtn" href="javascript:void(0);">Back
</a>
<!-- react-text: 219 -->
<!-- /react-text -->
<a class="slrofrpg-srvcs-offerbtn" href="javascript:void(0);">Send now
</a>
</div>