javascript 仅在代码中的某一行以下停止工作

标签 javascript href getelementbyid


奇怪的是代码可以工作,但在某一行以下什么都不会工作,甚至没有警报,并且变量会丢失值!

代码非常简单:

// retrieving scroll position from a hidden text input<br>
var scrollPos = document.getElementById("scrollPosition").value;

// at this point scrollPos value is a certain number :)

// so i'm successfully able to change the HREF accordingly! :)<br>
document.getElementById("page1").href = "page1.php?pos="+scrollPos;<br>
document.getElementById("page2").href = "page2.php?pos="+scrollPos;<br>
document.getElementById("page3").href = "page3.php?pos="+scrollPos; // same value to all!

document.getElementById("page4").href = "page4.php?pos="+scrollPos;<br>
// at some weird point scrollPos loses its value! :(

实际上,在故障点之后什么都不起作用,甚至没有警报(“测试”)!

最佳答案

如果调用 document.getElementById("something"),并且页面上没有 id 为 "something" 的元素,Javascript 将返回 null 。如果您随后尝试访问 nullhref 属性,Javascript 将引发异常并停止所有处理。

您可以在浏览器中打开 Javascript 控制台来查看错误消息,例如 TypeError: Cannot set property 'href' of null

您可以执行以下操作来避免该错误并避免对一般页数进行硬编码:

var page, elem;
for (page = 1; elem = document.getElement("page"+page); ++page) {
  elem.href = "page" + page + ".php?pos=" + scrollPos;
}

关于javascript 仅在代码中的某一行以下停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013416/

相关文章:

JavaScript 从变量 getElementById

javascript - 非法字符。在第 '4' 行位置 '6' JavaScript 错误

javascript - 通过 fetch promises 处理响应错误/http 状态

javascript - 浏览器预览仅显示 html,无 css 或 javascript(w3layouts.com 网站模板)

javascript - window.location.href 未分配/重定向

html - 如何将一个图像放在另一个图像之上

javascript - 在纯 Javascript 中获取复选框 onclick 的 ID 或值

javascript - 如何显示基于赞成票的递归评论?

javascript - Redactor:下拉插件

javascript - 尝试在 reactjs 中通过 document.getgetElementsByTagName 进行映射