2013-09-21 6 views
2

Я хочу получить значение href и hash тега a. Когда яПолучение значения href через jQuery

$(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), он просто не работает (печатает «неопределенные»). Как я могу его получить?

+2

просто сделайте 'this.href' или' $ (this) .attr ('href') ' – kalley

ответ

3

Если вы хотите обратиться к конкретным атрибутам элемента, вы можете использовать attr функцию JQuery:

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

В соответствии с вашим кодом мыши «а» тег даст список всех объектов метки привязки на вашей странице в массиве для $(this). И каждый из этих объектов имеют JQuery специфических свойств (как этот завернутый в JQuery), как HREF, хэш и т.д.

Так что если у вас есть только один якорь тег, то вы можете использовать $(this)[0].href

Но более конкретное решение будет использовать $(this).attr("href")

0

вы можете получить как: полный HREF или просто хэш, используя этот код:

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

вы можете увидеть demo on JSFiddle.

Смежные вопросы