querySelectorAll(els)
Есть функция
var $ = function(el) { return document.querySelectorAll(el); } прекрасно работает, но не очень удобна в использовании. Решил переписать ее типа jQuery (function() { function $(els) { this.elements = []; this.elements = document.querySelectorAll(els); return this; } $.prototype ={ size: function() { alert('size:'+this.elements.length); return this; }, и т.д. выдает SyntaxError: An invalid or illegal string was specified elms = document.querySelectorAll(els); вместо elms = document.querySelectorAll(els); использовал var nodesArray = Array.prototype.slice.call(document.querySelectorA ll(els)); все равно выдает SyntaxError: An invalid or illegal string was specified var nodesArray = Array.prototype.slice.call(document.querySelectorA ll(els)); в чем SyntaxError, не пойму? подскажите? |
Оформи код.
Добавь демку. Или хотя бы покажи как ты вызываешь функцию. И где ключевое слово var для elms |
var $ = function(selector) { if(this.$) return new $(selector); this.elems = document.querySelectorAll(selector); } $.prototype = { size: function() { return this.elems.length; } } alert( $('body').size() ); |
Спасибо Ruslan_xDD за работающий код!
Но можно ли туже функцию $ оформить как немедленно вызываемую функцию (function () { код }()); ? Просто под это уже много кода написано... |
Вроде все просто, но на строку this.elements = document.querySelectorAll(els); выдает SyntaxError
Пробовал this.elements = Array.prototype.slice.call(document.querySelectorA ll(els)); тоже SyntaxError Меня большевсего бесит именно SyntaxError, какой SyntaxError в таких простых строках? Подскажите! |
Полный код тут запости в
[js run] .. [/js] |
(function() { function _$(els) { this.elements = []; this.elements = Array.prototype.slice.call(document.querySelectorAll(els)); return this; } _$.prototype ={ size: function() { alert('size:'+this.elements.length); return this; } }; window.$ = function() { return new _$(arguments); } })(); Использование $('#test').size(); |
Цитата:
alert( (function() { return arguments.toString() })('body') ); |
Да вроде эта строка работает, ошибок на эту строку нет.
И вообще если вместо querySelectorAll использовать this.elements.push(document.getElementById(els)); то все нормально работает. Почему querySelectorAll вызывает SyntaxError, не пойму. |
Цитата:
document.querySelectorAll('!@#$%^&*()_') Ошибка в селекторе, а не в джаваскрипте. |
Часовой пояс GMT +3, время: 17:38. |