jQuery中的异常(selector [,context])

时间:2011-10-25 14:19:54

标签: 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 form = $("form", invalidhtml);

2 个答案:

答案 0 :(得分:1)

我猜你的somehtml命名是当jQuery期待一个对象时你传入一个字符串。

答案 1 :(得分:0)

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

我遇到问题的原始地方是更复杂的HTML,所以我希望它可以帮助某人。

以下任何有效的HTML示例都可以使用,无效的示例不起作用。

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