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

时间:2012-11-10 20:31:41

标签: 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>​

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

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

1 个答案:

答案 0 :(得分:5)

div不是p节点中的有效节点,因此解析器可能完全忽略它。如果它有内容,我希望它在 {/ 1}}节点之后在DOM树中移动到,使其成为{{的兄弟姐妹1}}。

p更改为img works,因为此处允许div