[jQuery] Potential Bug with next()

[jQuery] Potential Bug with next()

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:Arial;
color:windowtext;}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-GB link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Please see the sample code below.  Running it in FF and
checking the console should give you the error I am seeing.  I know the code is
pretty weird – it is simply an experiment.  But when I warp a retrieved
Comment node (using contents) and do .next() it seems to skip the actual
sibling it should get.  Is this a bug?<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><html><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>    <head><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>        <script
src="http://code.jquery.com/jquery-latest.js"></script><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>        <script><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>          $.annotated = function(filter, root){<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              if(filter){<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                filter = (filter.constructor ==
String)?[filter]:filter;<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              }<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              var annotations = $(root ||
document).find('*').andSelf().contents(<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                "[nodeType=8][nodeValue^=@]"<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              );<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              var annotated = annotations.map(<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                function(){<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                  var target = $(this).next();<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                  console.log(".next() ==" ,
target)<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                  console.log("but nextSibling
==", this.nextSibling)<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                  return target;<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>                }<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              );<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>              return $( $.unique(annotated.get()) );<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>          }<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>          $(function(){<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            $.annotated()<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>          });<o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>        </script><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>    </head><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>    <body id="body"><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>        <form id="frm1"><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            <input id="text001"
type="text" /><br/><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>           
<!--@Constraints({mandatory:true})--><input id="text002"
type="text"/><br/><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>        </form><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>    </body><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'></html><o:p></o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font>
<p class=MsoNormal><b><font size=1 color=teal face=Verdana><span
style='font-size:8.5pt;font-family:Verdana;color:teal;font-weight:bold'>James
Hughes</span></font></b><font size=1 face=Verdana><span style='font-size:8.5pt;
font-family:Verdana'> <font color="#999999"><span style='color:#999999'>| Senior
Software Engineer | Kainos | DD: +44 (0)28 9057 1100 | Fax: +44 (0)28 9057
1101 |</span></font> <a href="mailto:j.hughes@kainos.com">j.hughes@kainos.com</a></span></font><font
size=1 face=Verdana><span style='font-size:8.5pt;font-family:Verdana'><o:p></o:p></span></font>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font>
</div>
<div id="qsdtag">
<TABLE style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif">
<TBODY>
<TR>
<TD>
<TABLE height=30 cellSpacing=0 cellPadding=0 width=700 border=0>
<TBODY>
<TR>
<TD width=44><IMG height=30 alt=logo
src="http://www.kainos.com/images/footer_logo.gif" width=44></TD>
<TD style="FONT-SIZE: 0.7em; COLOR: #cce6e6" vAlign=center
bgColor=teal><A title="Kainos Newsletters"
style="COLOR: #cce6e6">Upcoming event – <A
title="Kainos Newsletters" style="COLOR: #cce6e6"
href="http://www.kainos.com/Events.aspx?id=58">Unlocking the
Potential of SharePoint</A></TD>
<TD width=10><IMG height=30 alt=f
src="http://www.kainos.com/images/footer.gif"
width=10></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD> </TD></TR>
<TR>
<TD
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 0.7em; PADDING-BOTTOM: 10px; COLOR: #666; LINE-HEIGHT: 12px; PADDING-TOP: 10px; TEXT-ALIGN: justify">This
e-mail is intended solely for the addressee and is strictly confidential;
if you are not the addressee please destroy the message and all copies.
Any opinion or information contained in this email or its attachments that
does not relate to the business of Kainos is personal to the sender and is
not given by or endorsed by Kainos. Kainos is the trading name of Kainos
Software Limited, registered in Northern Ireland under company number:
NI19370, having its registered offices at: Kainos House, 4-6 Upper
Crescent, Belfast, BT7 1NT, Northern Ireland. Registered in the UK for VAT
under number: 454598802 and registered in Ireland for VAT under number:
9950340E. This email has been scanned for all known viruses by MessageLabs
but is not guaranteed to be virus free; further terms and conditions may
be found on our website - <A title=Kainos style="COLOR: gray"
href="http://www.kainos.com">www.kainos.com</A>
</TD></TR></TBODY></TABLE>
</div>
</body>
</html>