jQuery中的异常(选择器[,上下文])

jQuery中的异常(选择器[,上下文]),jquery,css-selectors,Jquery,Css Selectors,有人能告诉我为什么使用下面的代码会出现异常吗 var invalidhtml = '<tr><div id="residualErrors" style="display:none;"></div><form action="" method="post"><table><tr><td></td></tr></table></form></tr>';

有人能告诉我为什么使用下面的代码会出现异常吗

var invalidhtml = '<tr><div id="residualErrors" style="display:none;"></div><form action="" method="post"><table><tr><td></td></tr></table></form></tr>';  

var form = $("form", invalidhtml);
var invalidhtml='';
var form=$(“form”,invalidhtml);

通过您对
某些html的命名,我猜您在jQuery需要对象时传入了一个字符串。

问题是html无效,因为“tr”元素下没有“td”元素。jQuery通常可以处理这个问题,但是如果“tr”元素中的某个地方还包含一个“table”,那么它会引发一个异常

我最初遇到问题的地方是更复杂的html,所以我希望它能帮助一些人

下面的任何一个validhtml示例都有效,无效的示例则无效

var invalidhtml = '<tr><form action="" method="post"><table><tr><td></td></tr></table>    </form></tr>';        

var validhtml = '<tr><form action="" method="post"></form></tr>';        

var validhtml2 = '<div><form action="" method="post"><table><tr><td></td></tr></table>    </form></div>';        

var validhtml3 = '<table><tr><td><form action="" method="post"><table><tr><td></td></tr></table></form></td></tr></table>';        

var validhtml4 = '<tr><td><form action="" method="post"><table><tr><td></td></tr></table>     </form></td></tr>';        

var form = $("form", validhtml);
form = $("form", validhtml2);
form = $("form", validhtml3);
form = $("form", validhtml4);
form = $("form", invalidhtml); // crash here in ie, proper browsers fail silently
var invalidhtml='';
var validhtml='';
var validhtml2='';
var validhtml3='';
var validhtml4='';
变量形式=$(“形式”,validhtml);
形式=$(“形式”,validhtml2);
格式=$(“格式”,validhtml3);
格式=$(“格式”,validhtml4);
form=$(“form”,invalidhtml);//在ie中崩溃,正确的浏览器会无声地失败

这毫无意义,您的var
invalidhtml
没有被重用,并且它的内容字符串没有结束符',而且字符串中的html无效。我假设一些html应该是invalidhtml。在这种情况下,@Clive是正确的,因为您传递了错误的数据类型作为上下文。很抱歉,这些家伙,您对我来说太快了:)已经更正了html(有些html应该是无效的html)),但我会自己回答这个问题,只要堆栈溢出允许,我就把它放在上面,以避免其他人与我发生冲突。基本上情况如下:“问题是html无效,因为tr元素下没有td元素。jQuery通常可以处理这个问题,但是如果tr元素中的某个地方还包含一个表,那么它会引发异常。”Dennis:可以将字符串作为“文档”传入。请参见上的“$(“div”,xml.responseXML);”作为示例。您可以将字符串作为“文档”传入。请参见api.jquery.com/jquery上的“$(“div”,xml.responseXML);”作为示例。