Проблема в том, что html недействителен, так как нет элемента "td" под элементом "tr". Обычно jQuery может справиться с этим, но если где-то есть элемент «table», включенный в элемент «tr», то это вызывает исключение.
Исходное место, где у меня была проблема, было намного более сложным 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