jQuery — Attributes, Before, Blur, and Callbacks

Image for post
Image for post
Photo by Osman Rana on Unsplash

jQuery is a popular JavaScript for creating dynamic web pages.

In this article, we’ll look at how to using jQuery in our web apps.

Attribute Starts With Selector [name^=”value”]

This selector let us select elements that have the specified attribute with a value starting exactly with a given string.

For example, if we have:

<input name="newsletter">
<input name="milkman">
<input name="newsboy">

Then we get all the inputs with the name attribute starting with news and setting the value for them by writing:

$("input[name^='news']").val("news here!");

Therefore, the first and last inputs will have the news here input added.

.before()

The .before() method lets us insert content before each element in the set of matched elements.

For example, if we have:

<div class="container">
<h2>Greetings</h2>
<div class="inner">foo</div>
<div class="inner">bar</div>
</div>

Then we can add an elements before each div with class inner by writing:

$(".inner").before("<p>Test</p>");

Then we get:

TestfooTestbar

displayed.

.bind()

The .bind() method lets us add a handler to an event for the elements.

For example, if we have the following HTML:

<div id="foo">
foo
</div>

We can add a click listener to it by writing:

$("#foo").bind("click", function() {
alert("User clicked on 'foo.'");
});

The first argument is the event name.

The 2nd argument is the callback that’s run when the event is triggered.

.blur()

The .blur() method binds an event handler to the blur JavaScript event.

For example, if we have the following HTML:

<form>
<input id="target" type="text" value="Field 1">
<input type="text" value="Field 2">
</form>

Then we can listen to the blur event on the input field with ID target by writing:

$("#target").blur(function() {
alert("Handler for .blur() called.");
});

We get the element and then pass in the callback to show an alert when we move away from the first input.

:button Selector

The :button select selects all button elements and elements with type set to button .

For example, if we have the following HTML:

<form>
<fieldset>
<input type="button" value="Input Button">
<input type="checkbox">

<input type="file">
<input type="submit">
<input type="text">
<select>
<option>Option</option>
</select>

<textarea></textarea>
<button>Button</button>
</fieldset>
</form>

And the following CSS:

.marked {
background-color: yellow;
border: 3px red solid;
}

Then we can get the buttons and add the marked class to them by writing:

const input = $(":button").addClass("marked");
console.log(input.length)

The input with type set to button and the button element will be selected.

callbacks.add()

The callbacks.add method lets us add callbacks to a callback list.

For example, we can write:

const foo = function(value) {
console.log(`foo: ${value}`);
};
const bar = function(value) {
console.log(`bar: ${value}`);
};
const callbacks = $.Callbacks();
callbacks.add(foo);
callbacks.fire("hello");
callbacks.add(bar);
callbacks.fire("world");

We call the $.Callbacks method to get a list of callbacks.

Then we call the add method to add the foo and bar methods to add to the callback list.

The callbacks.fire method will call each callback on the list with the given argument.

Therefore, we get:

foo: hello
foo: world
bar: world

from the console log.

Conclusion

We can select items by attribute name and value.

Also, we can listen to various events with jQuery methods.

We can also add callbacks to a list and call them all later.

Written by

Web developer. Subscribe to my email list now at http://jauyeung.net/subscribe/. Email me at hohanga@gmail.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store