通过jQuery获取href值

时间:2013-09-21 16:28:00

标签: javascript jquery html

我想获得href标记的hasha的值。当我做的时候

$(document.body).on('click',"a",function(event){ 
    console.log($(this));
}); 

我看到一个类似

的对象
[a.internalLink, context: a.internalLink, jquery: "1.10.2", constructor: function, init: function, selector: ""…]
    0: a.internalLink
        accessKey: ""
        attributes: NamedNodeMap
        ...
        hash: "#abc.1.2"
        ...
        href: "http://www.example.com/page.html#abc.1.2
        ...

但是当我试图通过console.log($(this).href)获取值时,它只是不起作用(打印出“未定义”)。我怎么能得到它?

6 个答案:

答案 0 :(得分:4)

如果要引用元素的特定属性,可以使用jQuery的attr函数:

$(document.body).on('click',"a",function(event){ 
    console.log( $(this).attr("href") );
});

答案 1 :(得分:1)

$( "a" )[0].href$( "a" ).attr( "href" )

答案 2 :(得分:1)

$('body').on('click', 'a', function () { 
    console.log($(this).attr('href'));
});

答案 3 :(得分:1)

$(document.body).on('click',"a",function(event){ 
    console.log($(this).attr('href'));
    event.preventDefault();
}); 

答案 4 :(得分:0)

根据您的代码,点击“a”标记会在页面中为$(this)提供所有锚标记对象的列表。每个对象都有jQuery特定的属性(如这个包装在jQuery中),如href,hash等。

因此,如果您只有一个锚标记,那么您可以使用$(this)[0].href

但更具体的解决方案是使用$(this).attr("href")

答案 5 :(得分:0)

您可以使用以下代码获取两者:完整href或仅使用哈希:

$("body").on("click","a",function() {
  var href = $(this).attr("href")
  var hash = href.replace(/^.*?#/,'');
  console.log(href + " - " + hash);
});

您可以看到demo on JSFiddle