3 ms·
You can define your own `$` function. This way you can have the clean code without the entire jQuery library function $(arg) { if (arg.charAt(0) ==
by rement 5y ago
You can define your own `$` function. This way you can have the clean code without the entire jQuery library
function $(arg) {
if (arg.charAt(0) == "#") {
// HTML spec does not support ids to start with numbers [0]
// (you may not need this conditional on your website)
return document.getElementById(arg.slice(1))
}
return document.querySelector(arg)
}
Using this function you can select your comment with
$('#27677234')
jQuery does add many extra features but if clean code is the only thing you are after there are other options.
[0] https://www.w3.org/TR/html4/types.html#type-id https://www.w3.org/TR/html4/types.html#type-id
- rement 5y agoThe HN js actually does just this. The file isn't very long but has some great functions at the top https://news.ycombinator.com/hn.js https://news.ycombinator.com/hn.js
- gunapologist99 5y agoTrue, but jQuery does a lot more than just id selection with $! You could just extend the function to detect '.' vs '#', and do a class selection as well. And then add all of the selectors, subselectors, etc. (similar to, but far more powerful than css3's selectors.) and if you go far enough, you reinvented zepto (but still a long way from jQuery) (actually, since $ is basically synonymous with jQuery, it'd probably be better to choose a different function name. too bad you can't define it as #(id).)
- recursive 5y ago> True, but jQuery does a lot more than just id selection with $! Yes. For a high degree of jquery-compatibility, you can use my library. const $ = document.querySelectorAll.bind(document);
- goldenkey 5y agoThis comment made me spit my drink out. People forget about bind, it's nice to replace the old closure patterns.