Detect selector support

by leaverou

JavaScript

function supportsSelector(selector) {
    var el = document.createElement('div');
    el.innerHTML = ['&shy;', '<style>', selector, '{}', '</style>'].join('');
    el = document.body.appendChild(el);
    var style = el.getElementsByTagName('style')[0],
        ret = !!(style.sheet.rules || style.sheet.cssRules)[0];
    document.body.removeChild(el);
    return ret;
}

console.log(':nth-child', supportsSelector(':nth-child(odd)'));
console.log(':unsupported', supportsSelector(':unsupported'));
console.log('::before', supportsSelector('::before'));