Skip to content
A sizzlin' hot selector engine.
JavaScript HTML CSS
Branch: master
Clone or download
mgol Selector: Make empty attribute selectors work in IE 11/Edge again
qSA in IE 11/Edge often (but not always) don't find elements with an empty
name attribute selector (`[name=""]`). Detect that & fall back to Sizzle
traversal.

Interestingly, IE 10 & older don't seem to have the issue.

Closes gh-461
Fixes jquery/jquery#4435
Latest commit af16387 Oct 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build Release: Add jquery-release script Jan 14, 2019
dist Selector: Make empty attribute selectors work in IE 11/Edge again Oct 21, 2019
external Tests: Fix speed/index.html dependencies Oct 25, 2018
speed Build: Switch from JSHint & JSCS to ESLint May 29, 2019
src Selector: Make empty attribute selectors work in IE 11/Edge again Oct 21, 2019
tasks Build: Split iOS tests into two sets to improve reliability Aug 21, 2019
test Selector: Make empty attribute selectors work in IE 11/Edge again Oct 21, 2019
.bowerrc Use bower for speed framework dependencies. Add .bowerrc. Aug 27, 2013
.editorconfig Build: Switch from JSHint & JSCS to ESLint May 29, 2019
.eslintignore Build: Switch from JSHint & JSCS to ESLint May 29, 2019
.eslintrc-browser.json Build: Switch from JSHint & JSCS to ESLint May 29, 2019
.eslintrc-node.json Build: Run Karma tests sequentially in separate processes + other imp… Aug 21, 2019
.eslintrc.json Build: Switch from JSHint & JSCS to ESLint May 29, 2019
.gitattributes Build: Normalize line endings Apr 14, 2014
.gitignore Build: Switch from JSHint & JSCS to ESLint May 29, 2019
.mailmap Build: Update my name in .mailmap & AUTHORS.txt Aug 28, 2017
.npmrc Build: Add .npmrc with save-exact=true May 24, 2016
.travis.yml Build: Remove xvfb usage from Travis, run tests on Node.js 12 Aug 19, 2019
AUTHORS.txt Release: Fix AUTHORS.txt Apr 8, 2019
CONTRIBUTING.md Misc: Update jQuery Foundation to JS Foundation Dec 2, 2016
Gruntfile.js Build: Update tested browsers, test on Edge 15-18 instead of just 17-18 Oct 15, 2019
LICENSE.txt Misc: Update jQuery Foundation to JS Foundation Dec 2, 2016
README.md Misc: Update jQuery Foundation to JS Foundation Dec 2, 2016
bower.json Release: Update version to 2.3.4 Apr 8, 2019
package-lock.json Build: Remove xvfb usage from Travis, run tests on Node.js 12 Aug 19, 2019
package.json Build: Remove xvfb usage from Travis, run tests on Node.js 12 Aug 19, 2019

README.md

Sizzle

A pure-JavaScript CSS selector engine designed to be easily dropped in to a host library.

Contribution Guides

In the spirit of open source software development, jQuery always encourages community code contribution. To help you get started and before you jump into writing code, be sure to read these important contribution guidelines thoroughly:

  1. Getting Involved
  2. JavaScript Style Guide
  3. Writing Code for jQuery Organization Projects

What you need to build Sizzle

In order to build Sizzle, you should have Node.js/npm latest and git 1.7 or later (earlier versions might work OK, but are not tested).

For Windows you have to download and install git and Node.js.

Mac OS users should install Homebrew. Once Homebrew is installed, run brew install git to install git, and brew install node to install Node.js.

Linux/BSD users should use their appropriate package managers to install git and Node.js, or build from source if you swing that way. Easy-peasy.

How to build Sizzle

Clone a copy of the main Sizzle git repo by running:

git clone git://github.com/jquery/sizzle.git

In the sizzle/dist folder you will find build version of sizzle along with the minified copy and associated map file.

Testing

  • Run npm install, it's also preferable (but not necessarily) to globally install grunt-cli package – npm install -g grunt-cli
  • Open test/index.html in the browser. Or run npm test/grunt test on the command line, if environment variables BROWSER_STACK_USERNAME and BROWSER_STACK_ACCESS_KEY are set up, it will attempt to use Browserstack service (you will need to install java on your machine so browserstack could connect to your local server), otherwise PhantomJS will be used.
  • The actual unit tests are in the test/unit directory.

Developing with grunt

  • npm run build or grunt will lint, build, test, and compare the sizes of the built files.
  • npm start or grunt start can be run to re-lint, re-build, and re-test files as you change them.
  • grunt -help will show other available commands.
You can’t perform that action at this time.