Исключение в jQuery (селектор [, контекст]) - PullRequest
0 голосов
/ 25 октября 2011

Может кто-нибудь сказать мне, почему я получаю исключение, используя код ниже?

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 ]

1 голос
/ 25 октября 2011

По вашему названию somehtml я думаю, что вы передаете строку, когда jQuery ожидает объект.

0 голосов
/ 26 октября 2011

Проблема в том, что 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...