首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript不处理多行

Javascript不处理多行
EN

Stack Overflow用户
提问于 2016-08-16 07:24:00
回答 2查看 114关注 0票数 0

由于某种原因,我的Javascript代码不起作用。但是,当我删除一些Javascript行时,它可以正常工作。

我做错了什么?

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span id="21" class="addon-price">0,00 p.m.</span>
<span id="57" class="addon-price">0,00 p.m.</span>

Javascript:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementById("17").innerHTML = "Gratis";
document.getElementById("18").innerHTML = "Gratis";
document.getElementById("19").innerHTML = "Gratis";
document.getElementById("20").innerHTML = "Gratis";
document.getElementById("21").innerHTML = "Gratis";
document.getElementById("47").innerHTML = "Gratis";
document.getElementById("52").innerHTML = "Gratis";
document.getElementById("57").innerHTML = "Gratis";
document.getElementById("62").innerHTML = "Gratis";

JSFiddle:https://jsfiddle.net/4e362pg3/5/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 07:26:13

JavaScript代码很好。您正在获得异常,因为您正在尝试设置不存在的标记的innerHTML。根据您的代码,唯一成功的两种方法是尝试设置57和21的跨度标记。在所有其他情况下,JavaScript抛出一个异常并停止执行。

要修复它,只需将每个集合包装在一个条件中,以便在尝试设置值之前查看元素是否存在。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(document.getElementById("17")) {
    document.getElementById("17").innerHTML = "Gratis";
}

下面是一个包含条件中的几个元素的示例

票数 1
EN

Stack Overflow用户

发布于 2016-08-16 07:26:46

打开你的控制台。

Uncaught :无法设置属性'innerHTML‘为null

如果DOM中不存在元素,则选择器将返回null。没有定义null.innerHTML,它会抛出一个错误并使页面崩溃。

使用jQuery解决方案(因为您在问题中使用了jQuery标记):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$("#17").html("Gratis);

即使"17“元素不存在,这也不会使页面崩溃。

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

https://stackoverflow.com/questions/38978759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文