可能的原因是什么document.getElementById,$("#id")或者任何其他DOM方法/ jQuery选择器没有找到元素?
示例问题包括:
.val(),.html(),.text())返回undefined返回的标准DOM方法null导致以下任何错误:
未捕获的TypeError:无法设置null的属性'...'未捕获的TypeError:无法读取null的属性'...'
最常见的形式是:
未捕获的TypeError:无法设置null的属性'onclick'
未捕获的TypeError:无法读取null的属性"addEventListener"
未捕获的TypeError:无法读取null的属性'style'
我无法onclick="location.href='link.html'"在Safari(5.0.4)中加载新页面.
我正在使用<select>和<option>HTML标签构建一个下拉导航菜单.我在点击菜单项后使用onClick处理程序加载新页面,但在Safari中没有任何反应.(我已经在FF和Opera中成功测试过了.)我知道Safari中有很多onClick错误,但我找不到解决这个特定问题的任何解决方案.
您可以在下面看到我的代码示例:
<select>
<option onclick="location.href='unit_01.htm'">Unit 1</option>
</select>
Run Code Online (Sandbox Code Playgroud)
和
<select>
<option onclick="location.href='#5.2'">Bookmark 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我不(并且不愿意)在我的HTML的head部分中嵌入任何javascript.我正在为不知道如何使用javascript的人开发页面 - 所以代码越简单越好.)
什么JavaScript代码会使菜单项在所有浏览器中都可点击?(请验证与IE的兼容性.)
我有以下代码.在向下滚动到某个点后,它会在搜索结果页面中的固定位置设置一个过滤条:
var docked;
var filters = document.getElementById('filters');
var init = filters.offsetTop;
function scrollTop() {
return document.body.scrollTop || document.documentElement.scrollTop;
}
window.onscroll = function () {
if (!docked && (init - scrollTop() < 0)) {
filters.style.top = 0;
filters.style.position = 'fixed';
filters.className = 'docked';
docked = true;
} else if (docked && scrollTop() <= init) {
filters.style.position = 'absolute';
filters.style.top = init + 'px';
filters.className = filters.className.replace('docked', '');
docked = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是(并且它更好奇) - 如果我将此代码放在我的文件顶部(在<head>)中,它根本不起作用.过滤器部分不会像应该的那样滚动窗口.但是,当我将此代码放在文件的底部(在结束</body>标记的正上方)时,它可以正常工作.
为什么是这样?这与代码的工作方式有关吗?或者它可能只是我文件其余部分的怪癖或错误造成的?