Здравствуйте,программно создаю ссылку,следующим методом: В span (contenteditable="true") вводиться текст,затем при нажатии на кнопку появляется promt туда вводиться ссылка на ресурс,затем ресурс оборачивается тегом.Вот пример
var link_url = prompt('Введите адрес ресурса:');
var text_link = $("span").text();
var link_got = '<a href="' + link_url + '">' + text_link + '</a>';
$(".selspan").text(link_got);
Дело в том,что потом появляется вот такое
<a href="https://mail.ru/">Почтовый сервис</a>
Как с этим бороться,как сделать < вместо <
Спасибо!
Хм, может потому что text() - это вставка текста, HTML-сущности превращаются в мнемоники, а не HTML-кода?
Use the html(), Luke!
$(function() {
$('#getLink').on('click', function() {
var text_link = $("#textForLink").text(), link_url, link_got;
if(text_link == '')
return;
link_url = prompt('Введите адрес ресурса:');
link_got = '<a href="' + link_url + '">' + text_link + '</a>';
$("#textSpan").text(link_got);
$("#htmlSpan").html(link_got);
});
});
#textForLink:focus{
outline: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2>Text for link</h2>
<span contenteditable="true" id='textForLink'></span>
<br />
<input type='button' id='getLink' value='Get link!' />
<h3>Result</h3>
<h4>Text</h4>
<span id='textSpan'></span>
<h4>HTML</h4>
<span id='htmlSpan'></span>
Но это какой-то сложный путь, не проще через prompt() попросить и текст ввести?
Либо использовать метод html вместо text, что, кстати, небезовасно; либо просто сделать по-человечекси без превращения всего в текст:
var link_url = prompt('Введите адрес ресурса:');
$(".selspan").html($("<a>").html($("span")).attr("href", link_url));
Продвижение своими сайтами как стратегия роста и независимости