3

我想获取标签的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),它就不起作用(打印出“未定义”)。我怎么才能得到它?

4

6 回答 6

4

如果要引用元素的特定属性,可以使用attrjQuery 的功能:

$(document.body).on('click',"a",function(event){ 
    console.log( $(this).attr("href") );
});
于 2013-09-21T16:30:23.343 回答
1

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

于 2013-09-21T16:29:37.590 回答
1
$('body').on('click', 'a', function () { 
    console.log($(this).attr('href'));
});
于 2013-09-21T16:29:50.473 回答
1
$(document.body).on('click',"a",function(event){ 
    console.log($(this).attr('href'));
    event.preventDefault();
}); 
于 2013-09-21T16:30:14.693 回答
0

根据您的代码,单击“a”标记将在您的页面中以数组形式列出所有锚标记对象$(this)。并且这些对象中的每一个都具有 jQuery 特定的属性(因为包含在 jQuery 中),例如 href、hash 等。

所以如果你只有一个锚标签,那么你可以使用$(this)[0].href

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

于 2013-09-21T16:51:10.650 回答
0

您可以同时获得:完整的 href 或仅使用以下代码的哈希:

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

你可以在 JSFiddle 上看到一个演示

于 2013-09-21T16:51:48.447 回答