【问题标题】:div is null in ie but in mozila and operadiv 在 ie 中为空,但在 Mozilla 和 Opera 中
【发布时间】:2011-07-24 15:44:16
【问题描述】:
<div id="a"></div>

if($("#a").is(':empty') )
      alert("empty");

在 IE8 中,它显示 alert,但 Mozilla 3.6 和 Opera 11 不显示 alert。为什么?

答案:

if(!$.trim( $("#a").html() ) )
   alert("empty");

这段代码在 ie 和 mozila 中运行

【问题讨论】:

  • 在 Chrome 中它确实显示警报
  • 并证明以上3个cmets:jsFiddle Demo

标签: javascript jquery browser cross-browser


【解决方案1】:

您的代码是有效的,应该可以在这些浏览器中运行。我在 FireFox 和 Chrome 中对其进行了测试,并且可以正常工作。

确认您的页面中没有任何其他 ID 为 a 的元素。大多数符合 Web 标准的浏览器正确拒绝承认任何重复的元素,并且通常会导致 JavaScript 因错误而失败。

【讨论】:

  • 如果这是非唯一id的问题,不要怪浏览器。 HTML 规范要求 id 的值在文档中是唯一的。
  • 如果我责怪浏览器,我责怪 IE 违反了该规范。我用“拒绝”这个词来表示它们不仅仅是编程不当,而是遵循规范的有意识的决定。
  • 我看到你添加了“正确”这个词。这微妙地改变了你所说的。我现在有点同意你的看法(FF、Chrome 做的比 IE 做的更好),但直接的问题还是一样:Web 开发人员创建了无效的 HTML。
  • 但我们也应该将矛头指向开发了第一个实现“允许”HTML 解析的 Web 浏览器的人们,并为今天网页实现中猖獗的草率打开了大门。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2012-08-20
  • 1970-01-01
  • 2011-01-25
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多