Подтвердить что ты не робот

Легкая альтернатива jQuery для выбора класса/идентификатора

Скажем, я хочу построить независимую структуру javascript/ script. Есть ли способ использовать jQuery удивительный класс и функции выбора элементов

$('.this') or $('#this') or $('div', '.this')

Без зависимости от jQuery или использования jQuery, если он доступен, но если нет, он работает без него? Я искал это высоко и низко. Возможно, я искал неправильно, так как ближайший я получил это:

Выбор элементов без jQuery

Однако это не так подробно, как я хочу, или так же, как я хочу, для jQuery. Я подумал о том, чтобы копать через источник jQuery и потрошить эту штуку и использовать ее, но я надеюсь, что кто-то уже это сделал, и я просто смотрю не туда, а кто-то еще знает об этом.

Обновление

Об этом ответили несколькими способами, и спасибо быстрым ответам. Я искал неправильный метод. Наконец я пришел: https://github.com/ded/qwery

Однако этот ответ здесь отлично работает: Легкая альтернатива jQuery для выбора класса/идентификатора

4b9b3361

Ответ 1

Во всех, кроме IE6 и IE7, вы можете использовать document.querySelectorAll или someElement.querySelectorAll для выполнения аналогичных функций выбора.

Обновить подробнее:

Похоже, ZeptoJS делает следующее. Это использует быстрые функции для $$(document, '#myid'), $$(document, '.myclass'), $$(document, 'div') и медленных поисков для $$(document, 'div > .myclass')

var classSelectorRE = /^\.([\w-]+)$/,
    idSelectorRE = /^#([\w-]+)$/,
    tagSelectorRE = /^[\w-]+$/;

$$ = function(element, selector){
  var found;
  return (element === document && idSelectorRE.test(selector)) ?
    ( (found = element.getElementById(RegExp.$1)) ? [found] : [] ) :
    Array.prototype.slice.call(
      classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) :
      tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) :
      element.querySelectorAll(selector)
    );
}

Ответ 2

Вы можете делать то, что делает jQuery, и использовать Sizzle: http://sizzlejs.com/

Ответ 3

Ответ на "Мне нужна небольшая библиотека JS, которая..." - это этот сайт: http://microjs.com/

в частности, вы ищете механизм выбора:

http://microjs.com/#css

Ответ 4

Вы посмотрели zepto.js? Вы все равно будете зависеть от фреймворка, но он намного легче: около 5kb вместо 31kb.

Ответ 5

Просто попробуйте jBone, библиотеку для событий и манипуляций с DOM. jBone имеет гораздо лучшую производительность, чем jQuery/Zepto, меньший размер и полную поддержку для всех селекторов, API событий событий.

Ответ 6

MicroSelector. Даже меньше и быстрее, чем Zepto, который меньше, чем Sizzle, который меньше, чем JQuery.