Elisabeth
Elisabeth

Reputation: 21206

Get an attributes value of the ALT attribute of a hyperlink

My a-tag (link) contains innerHTML which is an image like this:

.innerHTML = <img alt="hello world" src="/Content/Images/test.png">

How can I get the text of the alt attribute with JQuery?

Upvotes: 5

Views: 45816

Answers (3)

rlemon
rlemon

Reputation: 17666

You really don't need jQuery. If you have the a element you can do this:

// lets call the anchor tag `link`
var alt = link.getElementsByTagName('img')[0].alt; // assuming a single image tag

Remember attributes map to properties (most), and unless the property is changed, or the attribute, the two should reflect the same data (there are edge cases to this, but they can be handled case-by-case).

If you truly do need the attribute there is

var alt = link.getElementsByTagName('img')[0].getAttribute('alt');

Last scenario is if you only have the image tag as a string.

var str = '<img alt="hello world" src="/Content/Images/test.png">';
var tmp = document.createElement('div');
tmp.innerHTML = str;
var alt = tmp.getElementsByTagName('img')[0].alt;

If you must use jQuery (or just prefer it) then the other answer provided by Alexander and Ashivard will work.

Note: My answer was provided for completeness and more options. I realize the OP asked for jQuery solution and not native js.

Upvotes: 11

Alexander
Alexander

Reputation: 23537

Being $a your <a/> element.

Using jQuery you can do:

$("img", $a).first().attr("alt");

Or, using pure JavaScript:

var $img = $a.getElementsByTagName("img")[0];
console.log($img.alt);

See it here.

Upvotes: 7

Ashirvad
Ashirvad

Reputation: 2377

use this.

var altName=$('a img').attr('alt');

Upvotes: 1

Related Questions