如何使用 jQuery 将超链接插入文本?
How to insert hyperlink into text using jQuery?
我想制作一个 Insert Link
按钮。这是我想出的:
$(document).ready(function(){
function HyperLink(elementID, openTag, closeTag) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
$('#btnHyperlink').click(function() {
HyperLink("id_description", "<a>", "</a>");
});
});
上面的代码片段包含带有 <a>...</a>
的文本,但是我不知道如何将 href 插入到文本中。
感谢您的帮助。
注:
我希望将链接动态添加到文本中,因为此按钮将在简单的文本编辑器中使用。
你可以这样试试:
$('#id_description').html('<a href="http://www.google.com">Google</a>');
不确定这是否是您要查找的内容,但它是这样的:
var field = "http://www.google.com"
$(document).ready(function () {
$('.id_description').each(function () {
this.innerHTML += ' <a href=" ' +field + '">Google</a>';
});
});
您可以通过在 JavaScript:
element.href = "url";
在jQuery中你可以使用:
element.attr('href', 'url');
尝试使用 jQuery wrap()
$( "#id_description" ).wrap( '<a href="path"></a>' );
尝试:
<span class="linkable">Click to insert link</span>
$('.linkable').click(function(){
var text = $(this).html();
var link = $("<a>", {
href: "http://google.com"
}).html(text);
$(this).replaceWith(link);
});
$("textarea").on("select", function(){
var start = this.selectionStart;
var end = this.selectionEnd;
var text = this.innerHTML.substring(start, end);
var link = $("#user_link").val();
var new_link ="<a href='"+link+"' target='_blank'>"+text+"</a>";
$(this).after(new_link);
});
那么:
$('#btnHyperlink').click(function() {
var href = prompt("Insert url");
if(href != "" && href != null)
{
HyperLink("id_description", href);
}
});
以及函数:
function HyperLink(elementID, url) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = $('<div/>').append(
$('<a/>').attr('href', url).html(selectedText)
).html();
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
编辑
似乎将一个 a
标签连接成一个字符串只会得到 url,所以我将它包装成一个 div 并提取其内容以将其作为字符串输出。
编辑 2
似乎我复制了错误版本的代码。对不起。这是 JSFiddle:
我想制作一个 Insert Link
按钮。这是我想出的:
$(document).ready(function(){
function HyperLink(elementID, openTag, closeTag) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
$('#btnHyperlink').click(function() {
HyperLink("id_description", "<a>", "</a>");
});
});
上面的代码片段包含带有 <a>...</a>
的文本,但是我不知道如何将 href 插入到文本中。
感谢您的帮助。
注:
我希望将链接动态添加到文本中,因为此按钮将在简单的文本编辑器中使用。
你可以这样试试:
$('#id_description').html('<a href="http://www.google.com">Google</a>');
不确定这是否是您要查找的内容,但它是这样的:
var field = "http://www.google.com"
$(document).ready(function () {
$('.id_description').each(function () {
this.innerHTML += ' <a href=" ' +field + '">Google</a>';
});
});
您可以通过在 JavaScript:
element.href = "url";
在jQuery中你可以使用:
element.attr('href', 'url');
尝试使用 jQuery wrap()
$( "#id_description" ).wrap( '<a href="path"></a>' );
尝试:
<span class="linkable">Click to insert link</span>
$('.linkable').click(function(){
var text = $(this).html();
var link = $("<a>", {
href: "http://google.com"
}).html(text);
$(this).replaceWith(link);
});
$("textarea").on("select", function(){
var start = this.selectionStart;
var end = this.selectionEnd;
var text = this.innerHTML.substring(start, end);
var link = $("#user_link").val();
var new_link ="<a href='"+link+"' target='_blank'>"+text+"</a>";
$(this).after(new_link);
});
那么:
$('#btnHyperlink').click(function() {
var href = prompt("Insert url");
if(href != "" && href != null)
{
HyperLink("id_description", href);
}
});
以及函数:
function HyperLink(elementID, url) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = $('<div/>').append(
$('<a/>').attr('href', url).html(selectedText)
).html();
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}
编辑
似乎将一个 a
标签连接成一个字符串只会得到 url,所以我将它包装成一个 div 并提取其内容以将其作为字符串输出。
编辑 2 似乎我复制了错误版本的代码。对不起。这是 JSFiddle: