Episode 12 of 24

Changing Attributes

Learn how to get, set, and remove HTML attributes using jQuery.

jQuery makes it easy to read, change, and remove HTML attributes on any element.

attr() — Get and Set Attributes

// Get an attribute
let link = $("a").attr("href");
let imgSrc = $("img").attr("src");
console.log(link, imgSrc);

// Set an attribute
$("a").attr("href", "https://example.com");
$("img").attr("alt", "Product image");

// Set multiple attributes at once
$("img").attr({
    src: "new-image.jpg",
    alt: "Updated image",
    title: "Click to enlarge"
});

removeAttr() — Remove an Attribute

$("a").removeAttr("target");
$("input").removeAttr("disabled");

prop() — For Boolean Properties

Use prop() for boolean properties like checked, disabled, selected:

// Check a checkbox
$("input[type='checkbox']").prop("checked", true);

// Disable a button
$("#submitBtn").prop("disabled", true);

// Read the state
let isChecked = $("#agree").prop("checked");
console.log(isChecked);  // true or false

attr() vs prop()

  • attr() — works with HTML attributes (href, src, class, id)
  • prop() — works with DOM properties (checked, disabled, selected)

val() — Form Input Values

// Get value
let username = $("input[name='username']").val();

// Set value
$("input[name='email']").val("user@example.com");

// Get selected option text
let selected = $("select option:selected").text();

data() — Custom Data Attributes

// HTML: <div data-user-id="42" data-role="admin">

let userId = $("div").data("user-id");   // 42
let role = $("div").data("role");         // "admin"

// Set data
$("div").data("status", "active");