Хотя IE по идее не должен на *TagName() ругаться. Это ведь его родная функция вродь...
|
Цитата:
|
Дело в том, что находит. Я же написала в первом посте, что код работает.
Просто меня смутило то, что в [1] он работает но, ругается в IE. В то время, как при применении к элементу [2] та же функция полностью работает и не ругается не в одном арбузе. (x)HTML дерево построено правильно, коды обоих таблиц одинаковые, количество элементов в селекторах равны. |
querySelectorAll в IE8, вроде бы, корректно работает только у document. Во всяком случае в jquery пользуются им только от document
|
Цитата:
|
devote,
jquery 1.7.1 // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn't work on object elements } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { var oldContext = context, old = context.getAttribute( "id" ), nid = old || id, hasParent = context.parentNode, relativeHierarchySelector = /^\s*[+~]/.test( query ); if ( !old ) { context.setAttribute( "id", nid ); } else { nid = nid.replace( /'/g, "\\$&" ); } if ( relativeHierarchySelector && hasParent ) { context = context.parentNode; } try { if ( !relativeHierarchySelector || hasParent ) { return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); } } catch(pseudoError) { } finally { if ( !old ) { oldContext.removeAttribute( "id" ); } } } |
nikita.mmf,
И? что читать код не умеем? context.querySelectorAll любой контекст кроме тега object |
devote,
сорри, ошибся, мне всегда казалось, что в строке return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); написано document, а не context |
единственный баг в querySelecor это то что делать запрос нужно от парента, если это не document. Тоесть:
<!doctype html> <html> <head> </head> <body> <div id="mycontext"> <span></span> </div> <script type="text/javascript"> var div = document.getElementById( 'mycontext' ); var elems = div.querySelectorAll( div.nodeName + " span"); alert( [ elems[0], elems[0].nodeName ] ); </script> </body> </html>Это такой некий своеобразный баг, который впринципе не сильно влияет на выборку. |
Спасибо ребят)
Я уже выяснила где зарыта сАбака) Тема off |
Часовой пояс GMT +3, время: 22:28. |