我想获得href
标记的hash
和a
的值。当我做的时候
$(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)
获取值时,它只是不起作用(打印出“未定义”)。我怎么能得到它?
答案 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。