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

Javascript 检查事件目标是否为超链接,javascript,html,Javascript,Html,我有一个大的div,里面有小的div,achor标签和其他元素。 程序中的每个大div都绑定到“mousedown”事件,在onMouseDown处理程序中,我基本上检查event.target 如果用户单击的项目是超链接,我想检查event.target是否是超链接,然后如果event.target是超链接,则导航到该链接。如何做到这一点 下面是divsa和元素的结构 <div class="camp-name"> <span class="btnCampaign"&

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

如果用户单击的项目是超链接,我想检查event.target是否是超链接,然后如果event.target是超链接,则导航到该链接。如何做到这一点

下面是divsa和元素的结构

<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>

你应该把它搞定

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

我试图修改您的代码,但代码中出现了多个问题,并进行了更正

这是JavaScript部分

var src = '<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>';

var label = document.createElement('DIV')
label.innerHTML = src;
var topdiv = document.getElementById("test");
console.log(label)
topdiv.appendChild(label);

label.addEventListener('click', test, false);

function test(event) {
    if(event.target.tagName.toLowerCase() === 'a') {
        var href = event.target.href;
        console.log(href);
    }
    window.location = href;
};
var src='';
var label=document.createElement('DIV')
label.innerHTML=src;
var topdiv=document.getElementById(“测试”);
console.log(标签)
topdiv.appendChild(标签);
label.addEventListener('click',test,false);
功能测试(事件){
if(event.target.tagName.toLowerCase()=='a'){
var href=event.target.href;
console.log(href);
}
window.location=href;
};
这是它的HTML部分

<div id="test">
 test
</div>

测试
我做这件事是一时冲动


请告诉我是否正确捕获了通风口。

您可以检查标记名的属性,如@parthik gosar所述。 另一种方法是使用
instanceof
操作符检查元素类(超链接的类型为
htmlanchoreElement
):


你能写出一些代码吗…比如你的div是如何组织和使用的stuff@theshadowmonkey:已添加。当我单击标记时,仍然只将event.target作为DIV获取。如何解决此问题?我认为事件由父DIV处理。最好在Chrome中尝试console.log(event),您应该看到可以操作的所有参数。我想这会在某些方面有所帮助。你能发布你正在使用的javascript吗?我会写一篇文章,然后试一试it@theshadowmonkey:添加。然后将其与什么进行比较?(我知道,但你应该把它包括在内,作为一个完整的答案。)这意味着如果(event.target.tagname=='a'){window.location.href=event.target}。这在JavaScript中是如何正确编写的?您能否指出event.target中的值是如何获取的?是event.target.valueOf()吗?@ParthikGosar:谢谢!但是我检查了一下,发现@theshadownmonkey在询问正确的信息。当我点击
标签时,我仍然得到event.target作为DIV。有出路吗?我在上面的帖子中添加了
元素strutre
(很容易不用jquery,因为我用普通语言构建了整个东西,不想在其中写入jquery代码)(如果
a
在那里,则导航到它,从这个意义上说,查找标记可能仍然可以)如果我点击一个不是a标签的元素,那么我不想导航到a标签链接,而是从我的javascript中已有的mouseDown事件中进行搜索,我有一个更大的div,正如我在文章中所写的,这个更大的div从某处获取HTMl并通过
.innerHTML
显示它是具有
mousedown
事件绑定的,我不允许更改该特定代码。因此,本质上,我正在寻找一种方法,通过该方法可以检查event.target是否有锚定标记(如果有,则导航)另外,由于以前的编码风格,现在不允许使用jQuery。@user1240679更新了fiddle和answer以反映您的更改
<div id="test">
 test
</div>
if (event.target instanceof HTMLAnchorElement) {
  console.log(event.target.href);
}