2016-10-21 2 views
0

Я хочу отключить тэг href, когда ссылка на него равна #, причина, по которой я хочу это сделать, заключается в том, что у меня есть много сообщений на моей веб-странице, которые содержат ссылки на другие сайты, мои партнеры. Когда я делаю сообщение, у меня есть шаблон, который облегчает мне размещать информацию на нем и готовит ссылку href, если какой-либо сайт, который имеет отношение к сообщению, хочет получить партнерство, и я связываю его с ними. Некоторые из моих старых сообщений имеют href-теги с # значением на нем, и когда я нажимаю на них, они открывают мою страницу на другой вкладке, поэтому поэтому я хотел бы отключить ее, если возможно, с помощью javascript (любой другой язык скрипта, который может выполнять работа тоже хорошо)Отключить тег href, когда значение = объявлено

Благодаря

+0

@ RobScott: Оба потерпят неудачу. –

+1

@RobScott: Кевин пропускает недопустимую строку в 'gEBTN', а затем делает вид, что результат (если он сработал) имеет метод' .forEach'. Иван делает вторую ошибку Кевина. –

+0

... так что путаница должна быть от того, почему они были проголосованы. –

ответ

2

Простейшее путь будет:

var emptyAnchors = document.querySelectorAll('a[href="#"]'); 

for (var i = 0; i < emptyAnchors.length; i++) { 
    emptyAnchors[i].addEventListener('click', preventDefaultEvent); 
} 

function preventDefaultEvent(e) { 
    e.preventDefault(); 
} 

Это поведение по умолчанию на ссылку мыши (открыть HREF цель).

+0

Спасибо, что сработал –

0

Вы можете выбрать тег с конкретными # HREF

ES6 синтаксис

const elements = document.getElementsByTagName("a[href='#']"); 

ES5 синтаксис

var elements = document.getElementsByTagName("a[href='#']"); 

затем добавить preventDefault() на событие каждого элемента, чтобы убедиться, что поведение по умолчанию не будет выполнено.

ES6 синтаксис

elements.addEventListener('click', e => { 
    e.preventDefault(); 
}); 

ES5 синтаксис

elements.addEventListener('click', function(e){ 
    e.preventDefault(); 
}); 

Если вы хотите, вы можете просто добавить CSS, чтобы сделать тег потерять свой стиль по умолчанию

a[href="#"] { 
    color: black; 
    pointer-events: none; 
    text-decoration: none; 
} 
+0

, вам также следует добавить версию ES5, чтобы объявить переменную, так как это только ES6. –

+0

О, вы правы, спасибо, что указали это!Пусть стала такой рутиной: ') – Kevin

+0

Мое объявление переменной ES6 должно даже быть const, не допускать. – Kevin

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