我有一个<select>
我的页面上有 onchange
的元素属性设置:
<select id="MySelect" onchange="return myOnChange(this);">Whatever</select>
事件处理程序如下所示:
function myOnChange(select) {
var parentNode = select.parentNode;
//whatever
}
页面加载后,用户更改下拉列表中的选择,并调用事件处理程序,parentNode
绑定(bind)到某些东西(无论它是什么,它不是未定义的,这就足够了)。
但是如果我添加 document.ready()
:
$(document).ready(function () {
var select = $('#MySelect');
var parentNode = select.parentNode;
//whatever
});
或window.load()
:
$(window).load(function () {
var select = $('#MySelect');
var parentNode = select.parentNode;
//whatever
});
然后,一旦调用其中任何一个,则 parentNode
未定义。
这是为什么呢?页面加载后如何调用我的处理程序,以便 parentNode
不是未定义吗?
最佳答案
因为这里 jQuery 对象中没有parentNode。
var parentNode = select.parent()
或
var parentNode = select[0].parentNode;
关于javascript - 为什么从 document.ready() 和 window.load() 内部访问时元素的parentNode未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36221686/