首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript在第一页可用,但在第二页不可用

Javascript在第一页可用,但在第二页不可用
EN

Stack Overflow用户
提问于 2018-09-01 21:38:59
回答 1查看 41关注 0票数 0

在使用Jquery几年之后,我决定至少学习基本的Javascript。我遇到了一个对我来说很奇怪的问题。

如果我有一个这样的脚本,它在第1页上运行,但在第2页上没有相同的类,则此脚本之后的所有脚本都将停止运行。

代码语言:javascript
运行
复制
var numberOfClasses = document.querySelectorAll("li.line");
document.querySelector("p.classes").innerHTML = 'Number of support Links ' + numberOfClasses.length;

如果在第二页上没有"p.classes",JavaScript文件中的任何内容都不会出现在将要运行的代码之后。这是正常的吗?代码位于JS文件中,该文件包含在两个页面上的html文件的底部。以上代码仅供参考。

第二页上的错误消息是TypeError:document.getElementById(...) is null,它引用了JS文件中没有出现在第二页上的第一段代码

耽误您时间,实在对不起

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-01 21:52:23

在这些情况下,jQuery会默默地“失败”。如果它没有找到选择器,它只会返回一个空的jQuery对象,您仍然可以从该对象调用方法,尽管它们不会做任何事情。

示例

代码语言:javascript
运行
复制
jQuery('NonExistentElement').html("won't show up")
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
No error will be thrown.

querySelector()这样的原生DOM方法不会返回空对象,您仍然可以从中访问方法。它们将返回元素、元素列表(NodeList、HTMLCollection等)或null。因此,如果您试图访问其中一个返回值上的属性,则在返回null的情况下可能会失败

代码语言:javascript
运行
复制
document.querySelector('NonExistentElement').innerHTML = "Won't show up";

这就是为什么在尝试使用null之前需要检查它的原因

代码语言:javascript
运行
复制
var element = document.querySelector('p.classes');
if(element != null){
   element.innerHTML = "your html";
}
var element2 = document.querySelector('p.classes2');
if(element2 != null){
   element2.innerHTML = "no error as the if statement fails and so this code wont execute";
}
代码语言:javascript
运行
复制
<p class="classes"></p>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52128647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档