检查事件目标是否是超链接

use*_*679 35 html javascript

我有一个大的div里面有较小的div,achor标签和其他元素.我的程序中的每个大div都绑定到"mousedown"事件,并且在onMouseDown处理程序中,我基本上检查了event.target.

如果用户点击超链接的项目,我想检查event.target是否是超链接,然后如果event.target是超链接,则导航到该链接.怎么办?

这是div和元素的结构.

<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>
Run Code Online (Sandbox Code Playgroud)

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);
        }
};
Run Code Online (Sandbox Code Playgroud)

Par*_*sar 72

你应该通过

if(event.target.tagName.toLowerCase() === 'a')
{
    event.target.href; //this is the url where the anchor tag points to.
}
Run Code Online (Sandbox Code Playgroud)


Ced*_*edX 7

tagName正如@parthik-gosar 所说,您可以检查该物业。另一种方法是使用instanceof运算符检查元素类(超链接的类型为HTMLAnchorElement):

if (event.target instanceof HTMLAnchorElement) {
  console.log(event.target.href);
}
Run Code Online (Sandbox Code Playgroud)