【发布时间】:2012-08-24 02:25:09
【问题描述】:
http://jsfiddle.net/mark69_fnd/DyRCZ/:
在 Chrome 上:
在 IE9 上:
我使用的是 jQuery 1.8.0
现在,我知道 IE9 很烂,但 IE 是 5 大浏览器之一,而 jQuery 应该将开发人员与 IE 的“特性”隔离开来,不是吗?
那么,怎么了?
谢谢。
附言
我知道 IE 主题会邀请参加某种类型的谈话,但请 - 具有建设性。
编辑
对于所有声称字符串数组不起作用的人。 jQuery 1.8.0 支持它,否则它既不能在 Chrome 也不能在 Firefox 上工作。但它对他们两个都有效!唯一的问题是 IE9,这意味着 jQuery 1.8.0 after() API 在那里被破坏了。
EDIT2
我认为 jQuery 1.8.0 即使在 Chrome 上也有更多after() 的问题。例如,以下是否可行?
$('#itemsHeader').after("
<tr><td>a</td></tr>");
http://jsfiddle.net/mark69_fnd/Nw8Hz/
然后呢:
$('#itemsHeader').after(" <tr><td>a</td></tr>");
答案是前者不起作用,但后者起作用!从 html 的角度来看,两者都是相同的并且应该可以工作。但它甚至在 Chrome 上都没有。
EDIT3
我很傻。是的,我是。
【问题讨论】:
-
Additional Arguments - 与其他添加内容的方法类似... .after() 也支持传入多个参数作为输入。支持的输入包括 DOM 元素、jQuery 对象、HTML 字符串和 DOM 元素数组。 同样来自文档,语言更加清晰。仅仅因为它在 chrome 中工作,并不意味着它是一个有意和可靠的功能。 jQuery 标准化了它在浏览器中的 intended 行为。未记录的功能可以采用一种方式或另一种方式,具体取决于浏览器的特定 js 实现如何处理案例。
-
@nbrooks - 我只是不明白如何在 Firefox 和 Chrome 上意外地传递字符串数组。此外,这个 API 在 IE9 上还有其他问题 - 请参阅下面其他人的 cmets。
-
可能是那些浏览器以某种方式将数组视为逗号分隔值列表(支持)而不是单个对象...我很想对此进行更多实验,但遗憾的是我没有有一个 IE 版本可以测试。如果你想通了,请更新你的问题并告诉我们
-
附注第二次编辑不是由于无效的 html,而是无效的 javascript - 您不能将字符串包装成这样的换行符,您必须关闭字符串并使用
+将其与新字符串连接 -
大声笑,别担心,发生在我们最好的人身上