Ответ 1
Вы можете использовать Атрибут начинается с селектора
$('a[href^="http://example.com/external/link"]').click(function() {
_gaq.push(['_trackPageview', '/external/pagename']);
});
У меня есть следующий код для отслеживания просмотров страниц для внешних ссылок, соответствующих определенному URL-адресу.
$("a").each(function(i){
if (
$(this).attr('href') == "http://example.com/external/link/" ||
$(this).attr('href') == "http://example.com/external/link"
) {
$(this).click(function(){
_gaq.push(['_trackPageview', '/external/pagename']);
});
}
});
Этот код работает, но он крайне неэффективен для страниц с большим количеством ссылок. Есть ли способ использовать селектор для выбора всех якорей с соответствующими hrefs вместо сканирования по всем ссылкам на странице?
Вы можете использовать Атрибут начинается с селектора
$('a[href^="http://example.com/external/link"]').click(function() {
_gaq.push(['_trackPageview', '/external/pagename']);
});
Да
$('a[href^="http://example.com/external/link"]').click(function() {});
Используя селектор атрибутов, вы можете найти конкретный href
. Вместо обычного href=
вы можете ожидать, я использовал href^=
, который соответствует любому элементу, который начинается с указанной строки.
Также вам не нужно использовать each
для привязки к событию клика всех выбранных тегов привязки. click()
автоматически сделает это за вас.
$("a[href^="http://example.com/external/link"]").click(function(){
_gaq.push(['_trackPageview', '/external/pagename']);
});
В jQuery получение всех hrefs будет выглядеть следующим образом:
var href = 'http://www.google.com';
var elements = $('a[href=' + href + ']');
alert("Found: " + elements.length);
Вы также можете использовать атрибуты с селектором, если вам нужно получить элементы с определенным атрибутом окончания. Что-то вроде этого:
$('a[href$=your text]') == "your text"
Надеюсь, это поможет кому-то.
$('a[href^="http://example.com/external/link"]').click( function(e){
// you do want to track which link was clicked, yes?
_gaq.push(['_trackPageview', $(this).attr('href') ]);
// suppress default click or you'll leave the page immediately:
e.preventDefault();
do_other_stuff_presumably_with_gaq();
});
Другой простой способ:
$('a[href="MY_ANCHOR_TEXT_HERE"]');
Дает список всех привязанных тегов на текущей странице. Чтобы получить привязывающие метки в идентификаторе div, вы можете использовать:
$('#MY_DIV_ID a[href="MY_ANCHOR_TEXT_HERE"]')
Чтобы использовать размер:
$('#MY_DIV_ID a[href="MY_ANCHOR_TEXT_HERE"]').size()
Здесь вы можете ввести код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("a").each(function(){
if($(this).attr("href") == "http://example.com/external/link/")
{
$(this).hide();
}
});
});
</script>
<a href="#" onclick="location.href='http://example.com/external/link/'; return false;">a website link</a>