Копировать текст
Здравствуйте. Есть кнопка
$(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, время: 02:16. |