Check if event target is hyperlink
I have a large div inside there which are smaller divs, achor tags and other elements. Each large div in my program is bound to "mousedown" event and inside the onMouseDown handler, I basically check the event.target.
If a user clicks on an items that is a hyper link, I want to check if event.target was hyperlink and then navigate to that link if event.target was a hyperlink. How can that be done?
Here's the structure of the divsa and elements.
<div class="camp-name">
<span class="btnCampaign"><div class=""></div></span>
<span class="campaign-name">
<a href="http://www.google.com">Some Link here</a>
</span>
</div>
<div class="campaign-name-sub">
<span class="campaign-accountname">Some Text here</span>
<span class="seprator">|</span>
<span class="brandname">Some Text here</span>
</div>
JS
var label = label.createElement("DIV");
label.innerHMTL = src //src is the above html that is seen here
Plugin.addEventListener(label, "mousedown", params.onMouseDown);
Plugin.onMouseDown() = function(event) {
var target = (event.currentTarget) ? event.currentTarget : event.srcElement;
if (target.tagName.toLowerCase() === "a" && target !== undefined) {
console.log(target.href);
Plugin.stopPropagation(event);
}
};
Solution 1:
You should get it through
if(event.target.tagName.toLowerCase() === 'a')
{
event.target.href; //this is the url where the anchor tag points to.
}
Solution 2:
You could check the tagName
property, as said by @parthik-gosar.
Another way is to use the instanceof
operator to check the element class (hyperlinks are of type HTMLAnchorElement
):
if (event.target instanceof HTMLAnchorElement) {
console.log(event.target.href);
}