Как я могу получить href тега <link>, используя jQuery? - PullRequest
2 голосов
/ 28 марта 2010

Я много видел, как это сделать с тегом, и у меня нет проблем с этим, но я не могу получить атрибут href тега <link>.

Даже пытаясь захватить тег ссылки вообще:

alert($("link").length);

Дает 0.

Есть идеи?

Спасибо,
Matt

Ответы [ 2 ]

5 голосов
/ 28 марта 2010

Если $("link").length возвращает 0, ваш селектор ничего не предлагает, и нет никакой надежды получить ссылку вообще.

Вам нужен лучший селектор. Может быть, атаковать его по ID (#linkId) или по определенному классу и т. Д. Вы можете использовать множество селекторов:

http://api.jquery.com/category/selectors/

Ваш первый шаг - получить длину, чтобы показать 1. Оттуда .attr ('href') даст вам местоположение ссылки.

Edit: Извините, неправильно понял, что вы собираетесь. Я думал, что вы имели в виду тег привязки. Вот как я успешно получил доступ к тегу ссылки:

var links = window.document.getElementsByTagName('link');
$(links).each(function() {
    $(this).attr('href')  // this is your href for the link tag in the loop
});
2 голосов
/ 28 марта 2010

Я предполагаю, что по какой-то причине тег ссылки недоступен, когда вы выполняете свое предупреждение Когда я попробую следующий образец:

<html>
<head>
<link rel="stylesheet src="xxx" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript">
    $(document).ready(function(){
        alert($("link").length);
    });
</script>
</head>
<body>
Hello world!
</body>
</html>

Он аккуратно возвращает «1», а не «0». Возможно, вы могли бы попытаться выяснить разницу между вашим кодом и этим примером. Например: вы запускаете свой код из HEAD или из тега BODY?

...