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.