Подтвердить что ты не робот

This.href vs $(this).attr('href')

После прочтения этой статьи net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/ я пришел к выводу, что использование this.href более эффективно.

Однако, когда я попытался использовать его в одном из моих проектов, я увидел, что this.href возвращает не только href, но также добавляет URL-адрес веб-сайта. Например <a href="tab-04"></a> this.href вернет http://example.com/abc/tab-04 и $(this).attr('href') вернет только tab-04.

Здесь вы можете увидеть пример http://jsfiddle.net/UC2xA/1/.

$(this).attr('href'), однако возвращает именно то, что мне нужно, и ничего больше.

Мой вопрос в том, как я могу переписать (или сделать то, что необходимо) this.href, чтобы он возвращал tab-04?

ИЗМЕНИТЬ

Дуг, вы правы на деньги с помощью

this.getAttribute('href')
4b9b3361

Ответ 1

Свойство href в простом Javascript будет иметь прикрепленную к нему семантику. Он возвращает целевой URL, к которому приведет ссылка. Неважно, как это было написано (абсолютные или относительные URL-адреса).

Когда вы используете $(this).attr("href"), вы сразу получаете значение атрибута href, как и любой другой атрибут, поэтому оно возвращает точное значение, отображаемое в HTML.

Для вашего случая, лучше использовать $(this).attr("href")

Если вы не хотите использовать jQuery, есть еще одно решение, использующее простой JavaScript:

this.getAttribute('href')

Ответ 2

document.getElementById(yourAnchorId).href.split("/")

[document.getElementById(yourAnchorId).href.split("/").length - 1].split("?")[0];

Ответ 3

какая небольшая подстрока?

например:

function getHref(a)
{
    var i = a.outerHTML.indexOf('href="')+6;
    return a.outerHTML.substring(i, a.outerHTML.indexOf('"', i));

}

PES TESTED!