Копировать текст
Здравствуйте. Есть кнопка
$(function(){ $("<a>СКАЧАТЬ</a>").attr({ class: "btn btn-mini", alt: "Скачать", download: "Имя файла", title: "Скачать"}).appendTo(".control"); }); Есть Текст который находится в другой ссылке завурнутый в span и br. В итоге выводится всё вот в таком виде: <div class="block"> <a class="name_zapis" href="#"> <span>Запись</span> <br> Октябрь </a> <div class="control"> <a class="btn btn-mini" alt="Скачать" download="Имя файла" title="Скачать" href="http://site.ru/123456.wav">СКАЧАТЬ</a> </div> </div> Так вот, как текст, который находится между span и после br вставить в атрибут download "Имя файла" в js ? Всё должно копироваться и вставляться относительно блока <div class="block">, так как таких блоков много с разными файлами и текстом. |
Цитата:
|
Цитата:
|
Вот так должно стать:
<div class="block"> <a class="name_zapis" href="#"> <span>Запись</span> <br> Октябрь </a> <div class="control"> <a class="btn btn-mini" alt="Скачать" download="Запись - Октябрь" title="Скачать" href="http://site.ru/123456.wav">СКАЧАТЬ</a> </div> </div> |
Цитата:
|
Aleksanderj,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $(".block").each(function(indx, el){ var a = $(".name_zapis", el); var text = $.trim(a.text()); var spanText = $.trim($('span', a).text()); var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig"); text = text.replace(reg, function(a,b,c) { return b + " - " + $.trim(c) }) $("<a/>",{ "text" : "СКАЧАТЬ", "href" : "http://site.ru/123456.wav", "class": "btn btn-mini", "alt": "Скачать", "download": text, "title": "Скачать"}).appendTo($('.control', el)); }); alert($("body").html()) }); </script> </head> <body> <div class="block"> <a class="name_zapis" href="#"> <span>Запись</span> <br> Октябрь </a> <div class="control"> </div> </div> <div class="block"> <a class="name_zapis" href="#"> <span>Абра-кадабра 2015</span> <br> Май Мир Мур </a> <div class="control"> </div> </div> </body> </html> |
рони, я вам очень благодарен! Получилось с вашей помощью! только без alert($("body").html()). Но это ясно что мелочи, ведь вы же не знаете что там еще за код у меня. Спасибо!:)
|
Здравствуйте. Еще вопрос: "А можно при выводе, на примере "Запись - Октябрь" поменялись местами слова, как "Октябрь - Запись? "
|
Цитата:
|
рони, спасибо, медитация закончилась :) , я поменял местами,
return $.trim(c) + " - " + b но у меня не везде почему-то меняются местами. Есть, например, текст со скобками <span>Запись(2)</span> <br> Октябрь </a> вот тут не меняется. Не подскажете в чём проблема? Или может есть возможность, чтобы знаки препинания () [] и точки не копировались? |
Aleksanderj,
var spanText = $.trim($('span', a).text()).replace(/([()])/g, "\\$1"); полный список что необходимо экранировать тут экранирование-специальных-символов добавлять если нужно replace(/([()сюда])/ |
Почему-то они переносятся всё равно
<span>Запись (с диска)</span> <br> Октябрь [первые числа] </a> $(".block").each(function(indx, el){ var a = $(".name_zapis", el); var text = $.trim(a.text()); var spanText = $.trim($('span', a).text()).replace(/([()])/g, "\\$1"); var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig"); text = text.replace(reg, function(a,b,c) { return $.trim(c) + " - " + b }) |
Цитата:
|
Цитата:
<span>Запись (с диска)</span> <br> Октябрь [первые числа] </a> в <a class="btn btn-mini" alt="Скачать" download="Запись (с диска) - Октябрь [первые числа]" title="Скачать" href="http://site.ru/123456.wav">СКАЧАТЬ</a> А если есть точк в тексте, то они мешают правильному сохранению формата. |
Aleksanderj,
Цитата:
Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $(".block").each(function(indx, el){ var a = $(".name_zapis", el); var text = $.trim(a.text()); var rg = /([(\].[)])/mig ; var spanText = $.trim($('span', a).text()).replace(rg, "\\$1"); var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig"); text = text.replace(reg, function(a,b,c) { return $.trim(c) + " - " + b }).replace(rg, "") $("<a/>",{ "text" : "СКАЧАТЬ", "href" : "http://site.ru/123456.wav", "class": "btn btn-mini", "alt": "Скачать", "download": text, "title": "Скачать"}).appendTo($('.control', el)); }); alert($("body").html()) }); </script> </head> <body> <div class="block"> <a class="name_zapis" href="#"> <span>Запись(2)</span> <br> Октябрь [первые числа] </a> <div class="control"> </div> </div> <div class="block"> <a class="name_zapis" href="#"> <span>Абра-кадабра ................. 2015</span> <br> Май Мир Мур </a> <div class="control"> </div> </div> </body> </html> |
Aleksanderj,
читайте про RegExp про DOM и комбинируйте как хотите. |
<a title="Скачать" download="Октябрь [первые числа] - Запись(2)" alt="Скачать" class="btn btn-mini" href="http://site.ru/123456.wav">СКАЧАТЬ</a></div> Октябрь [первые числа] - Запись(2) - как убрать в этой записи квадратные скобки и круглые скобки? а если есть и точки, то их тоже убрать. |
Aleksanderj,
смотрите пост 15. |
рони, :) вы замечательный человек, большое вам спасибо за помощь и за то, что терпели меня с моими вопросами!:)
|
Цитата:
alert( '<a title="Скачать" ... download="Октябрь [первые числа] - Запись(2)" alt="Скачать" class="btn btn-mini" [foo] () ... href="http://site.ru/123456.wav">СКАЧАТЬ</a></div>' .replace(/[\s\S]+(?=alt=)/g, function(substr){ return substr.replace(/[\[\]().]/g, "") }) ) |
Часовой пояс GMT +3, время: 21:34. |