Заменить все ссылки в div на сообщение

64
7

У меня есть несколько ссылок на странице im, заинтересованных в замене всех ссылок в определенном div, чтобы указать на main.php со ссылкой, помещенной как сообщение в ссылку...

example.php:

 <div id='mainpg'>
<a href='test123.html'>TEST1</a>
<a href='test123.html'><img src=1213.jpg/></a>
</div>
<a href='back'>back</a>

Я хочу использовать javascript или jquery, чтобы получить следующее

Example.php (со скриптом):

 <div id='mainpg'>
<a href='main.php?href=test123.html'>TEST1</a>
<a href='main.php?href=test123.html'><img src=1213.jpg/></a>
</div>
<a href='back'>back</a>

также не уверен, что нужно будет беспокоиться о urlencode из-за того, что предыдущая уже была ссылкой.

Спасибо, JT

спросил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
1
Решение
63

jQuery.each($('#mainpg a'), function() {
$(this).attr('href','main.php?href='+$(this).attr('href'));
});

http://jsfiddle.net/wQ83t/1/

ответил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
63

$('#mainpg a').each(function() {
var newRef = 'main.php?href=' + $(this).attr('href');
$(this).attr('href', newRef);
});

ответил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
63

links = document.getElementById("name of div").getElementsByTagName("a")

for(i=0;i<links.length;i++)
links.href="main.php?"+links.href

ответил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
64

$('#mainpg a').each(function(i) {
$(this).attr('href', 'main.php?href=' + $(this).attr('href'));
});

ответил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
45

С помощью jQuery вы можете использовать $.each для перебора ссылок и изменения атрибута href.

Что-то вроде этого:

jQuery(document).ready(function($){
$('a').each(function(index, value){
$(this).attr('href', 'main.php?'+($this).attr('href'));
}

});

Возможно, вам придется немного подправить его, не проверить.

ответил(а) 2021-01-19T17:57:45+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема