javascript - 为什么从 document.ready() 和 window.load() 内部访问时元素的parentNode未定义?

标签 javascript jquery events jquery-events document-ready

我有一个<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/

相关文章:

javascript - 向客户端发送ajax错误问题

javascript - 设置条件 onClick 行为时遇到问题

javascript - 调用对象中设置的匿名函数,未得到预期结果

javascript - 如何从路径连接多个div?

delphi - 如何比较一个事件及其相应的过程,避免E2035和E2036?

javascript - 适用于桌面和移动设备的 jQuery 事件

javascript - 无标题 Javascript JSON 数组 -> CSV 导出

javascript - HighCharts 超过 100 时向下舍入

php - 如何使用 jQuery 计算输入字段的总成本?

asp.net - 如何在呈现之前设置用户控件属性?