为什么jQuery在被某些标签包围时不能找到next()?

Dou*_*g S 3 jquery

当我有被P标签或SPAN标签包围的元素时,为什么jQuery找不到next(),即使该元素确实有直接兄弟?

<p>
 <img src="" width="40" height="40"
  onmouseover="alert('next() is ' + $(this).next().length)" />
  &lt;-- mouseover me
 <div></div>
</p>?
Run Code Online (Sandbox Code Playgroud)

如果我将P标记更改为SPAN标记,则会出现同样的问题.如果我删除P标签或将其更改为几乎任何其他标签,它可以正常工作.

JSFiddle:http://jsfiddle.net/YHTGT/

Lig*_*ica 5

div不是节点中的有效节点p,因此解析器可能完全忽略它.如果有内容,我希望它在DOM树被移动到p节点,使之的兄弟img.

更改divspan 有效,因为span允许在那里.