|
11.02.2020, 13:50
|
Новичок на форуме
|
|
Регистрация: 11.02.2020
Сообщений: 7
|
|
Как всем ссылкам в блоке присвоить onClick и в href поставить #
Требуется в документе или блоке заменить все ссылки, вытащить из них содержимое href, поместить полученные ссылки в событие onClick(url_href), а href сделать "#" то есть чтобы клик происходил через функцию. Прошу подскажите реально ли такое сделать? Сам я новичек, но вот появилась задача организовать такое, хочу все ссылки открывать с помощью собития. Заранее благодарю.
|
|
11.02.2020, 13:56
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
var container = document.querySelector('block-selector');
if (!container) {
return;
}
container.querySelectorAll('a[href]').forEach(function (node) {
var href = node.getAttribute('href');
node.addEventListener('click', function (e) {
e.preventDefault();
onClick(href);// onClick - you function name
});
node.href = '#';
});
|
|
11.02.2020, 14:46
|
Новичок на форуме
|
|
Регистрация: 11.02.2020
Сообщений: 7
|
|
Благодарю! По коду смотрю, так вроде должно сработать, но запускаю и не работает Не пойму в чем дело... Прошу помочь.
Код:
|
<html>
<head>
<script>
function goURL(k) {
alert(k);
}
var container = document.querySelector('.pages');
if (!container) {
return;
}
container.querySelectorAll('a[href]').forEach(function (node) {
var href = node.getAttribute('href');
node.addEventListener('click', function (e) {
e.preventDefault();
goURL(href);// onClick - you function name
});
node.href = '#';
});
</script>
</head>
<body>
<div class="pages">
<a href="http://site.com/page/2/">2</a>
<a href="http://site.com/page/3/">3</a>
<a href="http://site.com/page/4/">4</a>
<a href="http://site.com/page/5/">5</a>
<a href="http://site.com/page/6/">6</a>
<a href="http://site.com/page/7/">7</a>
<a href="http://site.com/page/8/">8</a>
<a href="http://site.com/page/9/">9</a>
<a href="http://site.com/page/10/">10</a>
<a href="http://site.com/page/11/">11</a>
</div>
</body>
</html> |
Последний раз редактировалось A.User, 11.02.2020 в 14:49.
|
|
11.02.2020, 14:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
A.User,
нет блока <div class="pages"> на момент работы скрипта. скрипт вниз страницы или читать про DOMContentLoaded
|
|
11.02.2020, 14:56
|
Новичок на форуме
|
|
Регистрация: 11.02.2020
Сообщений: 7
|
|
Я поместил код перед /body и все равное не срабатывает...
|
|
11.02.2020, 15:15
|
Новичок на форуме
|
|
Регистрация: 11.02.2020
Сообщений: 7
|
|
Убрал
if (!container) {
return;
}
заработало.
|
|
11.02.2020, 15:49
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от A.User
|
заработало.
|
вы уверены?
|
|
11.02.2020, 15:52
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
A.User,
рабочий код
<html>
<head>
</head>
<body>
<div class="pages">
<a href="http://site.com/page/2/">2</a>
<a href="http://site.com/page/3/">3</a>
<a href="http://site.com/page/4/">4</a>
<a href="http://site.com/page/5/">5</a>
<a href="http://site.com/page/6/">6</a>
<a href="http://site.com/page/7/">7</a>
<a href="http://site.com/page/8/">8</a>
<a href="http://site.com/page/9/">9</a>
<a href="http://site.com/page/10/">10</a>
<a href="http://site.com/page/11/">11</a>
</div>
<script>
function goURL(k) {
alert(k);
}
var container = document.querySelector('.pages');
if (container) {
container.querySelectorAll('a[href]').forEach(function (node) {
var href = node.getAttribute('href');
node.addEventListener('click', function (e) {
e.preventDefault();
goURL(href);// onClick - you function name
});
node.href = '#';
});};
</script>
</body>
</html>
или так
<html>
<head>
<script>
document.addEventListener( "DOMContentLoaded" , function() {
function goURL(k) {
alert(k);
}
var container = document.querySelector('.pages');
if (!container) {
return;
};
container.querySelectorAll('a[href]').forEach(function (node) {
var href = node.getAttribute('href');
node.addEventListener('click', function (e) {
e.preventDefault();
goURL(href);// onClick - you function name
});
node.href = '#';
});
});
</script>
</head>
<body>
<div class="pages">
<a href="http://site.com/page/2/">2</a>
<a href="http://site.com/page/3/">3</a>
<a href="http://site.com/page/4/">4</a>
<a href="http://site.com/page/5/">5</a>
<a href="http://site.com/page/6/">6</a>
<a href="http://site.com/page/7/">7</a>
<a href="http://site.com/page/8/">8</a>
<a href="http://site.com/page/9/">9</a>
<a href="http://site.com/page/10/">10</a>
<a href="http://site.com/page/11/">11</a>
</div>
</body>
</html>
|
|
11.02.2020, 16:38
|
Новичок на форуме
|
|
Регистрация: 11.02.2020
Сообщений: 7
|
|
Да, заработал тот вариант. А что, там есть явные ошибки?
|
|
11.02.2020, 16:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от A.User
|
Да, заработал тот вариант. А что, там есть явные ошибки?
|
ошибок нет, можно и просто убрать условие, если поставить скрипт вниз страницы, думал у вас заработало без переноса вниз.
Последний раз редактировалось рони, 11.02.2020 в 17:00.
|
|
|
|