var links = $('p:first-child a');
If there is more than one link, the return value is NodeList
, if there's only a single match, you have an Element
object. So you need to have an idea of what to expect if you want to modify the DOM.
$('p:first-child a').on('click', function (event) {
event.preventDefault();
// do something else
});
Note: the on
and trigger
methods are on both Element
objects and NodeList
objects.
$('a').on('foo', function () {
// foo was fired
});
$('a:first-child').trigger('foo');
$('p').forEach(function (el) {
console.log(el.innerHTML);
});
$('a').on('foo', bar).on('click', doclick).trigger('foobar');
Also when a single element is matched, you have access to it:
$('a').href = '/some-place.html';
Like jQuery, this tiny library silently fails when it doesn't match any elements. As you might expect.
Inspired by Andrew Lunny's slide.
I've started using this library in conjunction with some microlibraries that I've written for data binding and XHR.