jQuery选择器,IE <p> </p> <form>选择器行为</form>

时间:2012-11-28 00:15:23

标签: selector jquery

如果您在FORM元素前加上P元素,则不会选择示例中DIV下面的元素!

<P><FORM id=f ...
<INPUT ...>
<DIV><INPUT (this element is not selectable)
</DIV>
</FORM>
对于上面的第二个输入,IE中将不会发生$('#f INPUT').eventshttp://jsfiddle.net/jorese/Bzc7M/

上试用测试用例

在IE中,您将收到alert = 3,删除FORM元素前面的P元素,您将获得预期的alert = 5。在Chrome | FF中,您可以按预期获得alert = 5。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

您的HTML代码无效,它包含一些错误,某些浏览器呈现它的原因是他们通过尝试猜测在某种程度上容忍无效代码开发人员最初想写的东西。

div元素可用于将几乎所有元素组合在一起。实际上,它几乎可以包含任何其他元素,不像p,它只能包含内联元素

使用div代替: http://jsfiddle.net/mshMX/

Sitepoint参考:http://reference.sitepoint.com/html/p

W3参考http://www.w3.org/TR/html4/sgml/dtd.html

关于同一问题的前StackOverflow问题:Why <p> tag can't contain <div> tag inside it?