Attribute and Pseudo Selectors
Attribute and Pseudo Selectors: free step-by-step lesson with examples, common mistakes, and interview tips — part of jQuery Tutorial on Toolliyo Academy.
On this page
jQuery Tutorial · Lesson 7 of 100
Attribute and Pseudo Selectors
Setup & DOM → Events Effects AJAX → Perf & Integrate → Ship & Projects
Setup & DOM · 1 — Select · ~6 min · Setup and Selectors
What is this?
Attribute selectors match properties like [type="email"] or [data-role]. Pseudo selectors such as :first, :last, :odd, :even, and :eq(n) pick positions in the matched set.
Why should you care?
Tables and long forms in QueryVerse need zebra rows and field-type targeting without hand-rolled loops.
See it live — copy this example
Examples include the jQuery 3.7 CDN. Paste into an HTML file or use Run Example to preview.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>QueryVerse</title>
<style>
body { font-family: system-ui, sans-serif; margin: 1.25rem; }
.box { padding: .75rem; border: 1px solid #ccc; border-radius: 8px; margin: .5rem 0; }
.muted { color: #666; }
button { margin-right: .35rem; margin-top: .35rem; }
input, select, textarea { margin: .25rem 0; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: .4rem .55rem; text-align: left; }
.hidden { display: none; }
.row-odd { background: #f7f7f7; }
.active { font-weight: 700; }
.toast { background: #111; color: #fff; padding: .5rem .75rem; border-radius: 6px; }
</style>
</head>
<body>
<form id="signup" class="box">
<input type="text" name="fullName" placeholder="Name">
<input type="email" name="email" placeholder="Email" data-role="contact">
<input type="password" name="pwd" placeholder="Password">
</form>
<table id="grid">
<tr><td>R1</td></tr><tr><td>R2</td></tr>
<tr><td>R3</td></tr><tr><td>R4</td></tr>
</table>
<p id="out" class="muted"></p>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(function () {
var email = $('input[type="email"]').attr('placeholder');
var contact = $('input[data-role="contact"]').attr('name');
$('#grid tr:odd').addClass('row-odd');
var firstCell = $('#grid tr:first td').text();
$('#out').text('emailPh=' + email + ' · name=' + contact + ' · first=' + firstCell);
});
</script>
</body>
</html>
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- [attr], [attr=value], and [attr^=] mirror CSS.
- :odd/:even are 0-based in jQuery.
- Prefer .eq() when the index is dynamic.
Practice next
- Confirm odd rows get .row-odd.
- Try input[name="pwd"].
- Use tr:eq(2) and read its text.
- Try [placeholder^="E"].
- Combine $("#grid tr:even td").
Remember
Attribute selectors target field kinds. Pseudos pick positions. Zebra with :odd/:even.
KYC form fields
A Paytm-like onboarding form in QueryVerse must style email/contact fields and stripe a document checklist table.
Outcome: Attribute + pseudo selectors style the right controls without per-row JS.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!