Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Замена в тексте
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо
izrukvruki
есть html-код с множеством "пустых" ссылок (ТЕКСТ - у всех разный и досточно большой...)

<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>

Можно как-то автоматом заменить ссылку вставив туда счетчик?

<a href="1">Текст</a>
<a href="2">Текст</a>
<a href="3">Текст</a>
<a href="4">Текст</a>
<a href="5">Текст</a>
<a href="6">Текст</a>
Iv
я подобное делал, сначала переводя текст в эксель, потом забывая ячейки нужными значениями и сохраняя опять текст
izrukvruki
нее, так не получится... там некоторые ссылки вставлены в тег <map> <area>, окружены координатами, разного количества

я переделываю карту своей области, с кликабельностью по районному центру, как вот здесь
http://www.rodniktver.narod.ru/

нашел автоматический генератор map верстки, координаты он автоматом ставит, а вот ссылки пустые ставит (href=""). Я сейчас уже вручную пронумеровал (1.html, 2.html...), теперь составлю таблицу соответсвия - типо 1 это тверь, 2 это бологое... Просто вдруг понадобится перегенерировать, т.к. размер карты потребуется больше и опять заново все нумеровать

Просто думал что в блокното-подобных программах есть замена типо (href="") -> (href="{$}"), где {$} счетчик...
Bourn
А можно юзать jquery? Например как-то так
Код
$('.block a').click(function(){
location.href=$(this).index()+".html";
return false;
});


а можно и с заменой при первом запуске
Код
var $arr=$('.block a');
for(var i=0;i<$arr.length;i++){
$($arr[i]).attr('href',i+'.html');
}

а если надо статику то потом открыть в предпросмотре кода в браузере и скопировать код html контейнера и всего что внутри

а ну и конечно селектор пустых ссылок
Код
$("a[href='']")
Эроласт
Если уж использовать jQuery, я бы лучше сделал так:
Код
$("a:not([href])").each(function(i) {
    this.href = i + ".html";
});

Код, разумеется, должен распологаться после элементов, ибо выполнится сразу по загрузке.

Если без jQuery, то так (IE9+):
Код
[].slice.call(
    document.querySelectorAll("a:not([href])")
).forEach(function(element, i) {
    element.href = i + "html"
});


Можно на ES6, но пока что лишь новейший файрфокс поддерживает:
Код
Array.from(
    document.querySelectorAll("a:not([href])")
).forEach((element, i) => {
    element.href = i + "html";
});
izrukvruki
куда эти куски вставлять то???

Код
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>

<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>
<a href="">Текст</a>


<script>
$("a:not([href])").each(function(i) {
    this.href = i + ".html";
});
</script>

    
</body>
</html>
Эроласт
Код
<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>

<a>Текст</a>
<a>Текст</a>
<a>Текст</a>
<a>Текст</a>
<a>Текст</a>
<a>Текст</a>


<script>
$("a:not([href])").each(function(i) {
    this.href = i + ".html";
});
</script>

    
</body>
</html>


Чтобы именно на <a href=""> реагировал, надо как у Боурна:
Код
$("a[href='']").each(function(i) {
    this.href = i + ".html";
});
izrukvruki
ага, работает.

но не работает:
Цитата
а если надо статику то потом открыть в предпросмотре кода в браузере и скопировать код html контейнера и всего что внутри

В просмотре кода странице ссылки пустые. Но если пересохранить страничку в браузере, то ссылки сохранятся

Всем большое спасибо.

Реально думал, что в Notepad++ есть возможность такой замены...
Эроласт
Цитата
не работает

Так посмотри консоль ошибок. Что пишет?
izrukvruki
я понктуацию не верно расставил. в принципе все работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.