HTML JS返回错误“无法设置空值”
HTML JS returns error 'cannot set value of null'
嗨,伙计们,我正在尝试使用innerHTML
但它总是返回空错误。我按照论坛中的一些帮助在 html 之后加载 JS 部分。我尝试使用onload
方法仍然失败。但是当我尝试使用 alert 时,该变量确实保留了该值。这是我正在使用的示例代码。
错误: 未捕获的类型错误: 无法将属性"innnerHTML"设置为 null
<div id="displayfacts"></div>
<div class="slideshow">
<img id="i1" src="p1.jpg">
<img id="i2" src="p2.jpg">
<img id="i3" src="p3.jpg">
<img id="i4" src="p4.jpg">
</div>
var islid=1;
var notices = new Array (
"The Vikings",
"Wolves",
"Turn",
"Smell");
window.onload = function slider() {
document.getElementById("#displayfacts").innnerHTML = notices[islid];
$(".slideshow #i"+islid+",#displayfacts").fadeIn(1000);
$(".slideshow #i"+islid+",#displayfacts").delay(3000);
$(".slideshow #i"+islid+",#displayfacts").fadeOut(2000);
(islid<5)?islid++:islid=1;
setTimeout(slider, 6000);
}
您将元素的 id 与元素的 CSS(和 jQuery)选择器混淆了它的 id。如果您有此元素:
<div id="displayfacts">...</div>
那么它的 id 只是"displayfacts",而不是"#displayfacts",所以你想在你的代码中使用document.getElementById('displayfacts');
(注意没有 #)。
您当前正在尝试获取对 id #displayfacts
的元素的引用(即 <div id="#displayfacts">...</div>
),它将返回 null(因为没有匹配的元素),因此当您尝试设置 innerHTML 属性时会出错。
如果我们看不到你的HTML很难帮助,但是检查js,似乎当你调用getElementById时,你正在使用"#displayfacts",而它应该是"displayfacts"。
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById
另外,如果你正在使用jquery,为什么你使用getElementById?
innnerHTML - 正确地是带有 2 n 的 innerHTML。
试试这个:
var innerHTML = "";
if(notices[islid] != null)
{
innerHTML = notices[islid];
}
document.getElementById("#displayfacts").innerHTML = innerHTML;
代码中的两个问题
改变
document.getElementById("#displayfacts").innnerHTML = notices[islid];
to(删除#
,因为 id displayfacts
不#displayfacts
)
document.getElementById("displayfacts").innnerHTML = notices[islid];
也改变
(islid<5)?islid++:islid=1;
自
(islid<3)?islid++:islid=0; //since your array has only 4 elements
最终代码
var islid=0;
var notices = [ "The Vikings", "Wolves", "Turn", "Smell"];
window.onload = function slider() {
$("#displayfacts").html( notices[islid] );//why not use jquery only
$(".slideshow #i"+islid+",#displayfacts").fadeIn(1000);
$(".slideshow #i"+islid+",#displayfacts").delay(3000);
$(".slideshow #i"+islid+",#displayfacts").fadeOut(2000);
(islid<3)?islid++:islid=0;
setTimeout(slider, 6000);
}
- 如何在可分组的剑道网格中设置空数据文本
- 映射数组ES6时考虑空值
- 如何使用单选按钮设置cookie值
- Model中的Typeahead返回空值以形成输入字段
- jQuery Datepicker从日期开始设置默认值
- 在机会不起作用时设置查找值's在潜在客户资格鉴定后创建
- JavaScript-HTML表单到JSON(空值)和格式
- <asp.隐藏字段>即使在javascript中设置了值,codeehind中的值也会变为空
- 为什么jQuery attr('href','#')设置了一个空值而不是#
- 挖空 + 选择2 -- 设置默认值
- 在Chrome/IE11/Firefox的隐藏空字段中设置一个值
- HTML JS返回错误“无法设置空值”
- 为我的对象设置空值
- 如何发现数据属性是否设置为空值?
- 获取一个不能设置属性'值'的空消息,当试图改变什么's图像标签
- 获取隐藏字段值c#页面加载后设置其值在客户端母版页返回空
- 设置输入值,然后禁用并移动到下一个空输入
- Console.log =我手动设置的值为空
- 不能设置属性'innerHTML'的空值,而仍然使用窗口.加载延迟
- 触发引导工具提示与空值设置