有人可以告诉我为什么我会使用下面的代码获得异常吗?
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);
答案 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