【问题标题】:IE 9 debugger how to get variable valueIE 9 调试器如何获取变量值
【发布时间】:2013-05-18 00:27:29
【问题描述】:

我的代码无法在 IE 9 上运行,但在 Firefox 上运行良好:

var denomAmount = j(this).closest('.denom').children('.denomValue').eq(0).val();

我想知道eq(0) 会返回什么,但是 IE9 调试器给出了乱七八糟的代码列表,没有任何有用的东西:

obj = j(this).closest('.denom').children('.denomValue').eq(0);

给我看obj 的一百个变量,但它们都有这样的值:

function(a,b,d){if(a||a===0)return
this.animate(S(hide,3),a,b,d);else{a=0;for(b=this.length;a<b;a++)
{d=c.css(this[a],display);d!=="none" c.data(this[a],olddisplay,d)}for(a=0;a<b;a++)this[a].style.display=none;return this}}

我只想要obj的值和基本属性。

【问题讨论】:

  • 如果你觉得 ie9 很难,那就庆幸你 8 年前没有做 web 开发
  • 在您的情况下,obj 是一个 jQuery 对象,因此 IE 会打印出该对象的属性。尝试记录有关该元素的一些特定信息。喜欢:console.log(obj.prop('id'))
  • @Dreamer:我猜你使用的是旧的 jQuery 版本,试试console.log(obj.attr('id'))
  • @Rocket Hazmat 日志为空“LOG:”所以我敢打赌它没有 id 属性...似乎 IE 无法使用eq() 找到子元素。好抓!我在 Jquery 1.4.... :(
  • @Dreamer:console.log(obj.length) 怎么样?

标签: javascript jquery html internet-explorer dom


【解决方案1】:

IE 没有将this 的上下文绑定到控制台。使用 id 或 class 之类的查询选择器来获取元素。从那里,你应该没事。

【讨论】:

  • “没有将this 的上下文绑定到控制台”是什么意思?
  • this 的调用将返回调用对象,无论是文档、函数、对象,还是使用callapply 方法明确定义的对象代码对象。在控制台中运行j(this) 时,它将返回控制台绑定到函数的此对象,但与在脚本中运行相同的代码时发现的$(this) 不同,因为在脚本中,一段 html 调用代码,这将返回一个 .closest('.denom') 可能有意义的对象。这就是意外结果的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2011-06-05
  • 2018-02-10
  • 1970-01-01
相关资源
最近更新 更多