IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Замена в тексте
izrukvruki
сообщение 14 Mar 2015, 20:35
Сообщение #1

Князь Бореи
Сообщений: 5 172
Спасибо сказали: 1349 раз




есть 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>
Go to the top of the pageAdd Nick
 
+Quote Post
Iv
сообщение 14 Mar 2015, 21:08
Сообщение #2

Immortal
Сообщений: 6 287
Спасибо сказали: 12721 раз




я подобное делал, сначала переводя текст в эксель, потом забывая ячейки нужными значениями и сохраняя опять текст


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 14 Mar 2015, 23:21
Сообщение #3

Князь Бореи
Сообщений: 5 172
Спасибо сказали: 1349 раз




нее, так не получится... там некоторые ссылки вставлены в тег <map> <area>, окружены координатами, разного количества

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

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

Просто думал что в блокното-подобных программах есть замена типо (href="") -> (href="{$}"), где {$} счетчик...
Go to the top of the pageAdd Nick
 
+Quote Post
Bourn
сообщение 15 Mar 2015, 22:03
Сообщение #4

Immortal
Сообщений: 2 415
Спасибо сказали: 60 раз




А можно юзать 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='']")


--------------------
Не лезь в дела Мудрых. Понять - не поймешь, а хлопот не оберешься.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 16 Mar 2015, 10:44 (Сообщение отредактировал Эроласт - 16 Mar 2015, 10:47)
Сообщение #5

Зануда
Сообщений: 2 238
Спасибо сказали: 2899 раз




Если уж использовать 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";
});


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 16 Mar 2015, 12:32
Сообщение #6

Князь Бореи
Сообщений: 5 172
Спасибо сказали: 1349 раз




куда эти куски вставлять то???

Код
<!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>
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 16 Mar 2015, 15:49 (Сообщение отредактировал Эроласт - 16 Mar 2015, 15:55)
Сообщение #7

Зануда
Сообщений: 2 238
Спасибо сказали: 2899 раз




Код
<!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";
});


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 16 Mar 2015, 16:48 (Сообщение отредактировал izrukvruki - 16 Mar 2015, 19:25)
Сообщение #8

Князь Бореи
Сообщений: 5 172
Спасибо сказали: 1349 раз




ага, работает.

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

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

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

Реально думал, что в Notepad++ есть возможность такой замены...
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 16 Mar 2015, 17:39
Сообщение #9

Зануда
Сообщений: 2 238
Спасибо сказали: 2899 раз




Цитата
не работает

Так посмотри консоль ошибок. Что пишет?
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 16 Mar 2015, 19:26
Сообщение #10

Князь Бореи
Сообщений: 5 172
Спасибо сказали: 1349 раз




я понктуацию не верно расставил. в принципе все работает.
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28 January 2026 - 18:42
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика