如何在输入中选择的文本周围包装html标记?

时间:2015-03-28 13:35:41

标签: javascript jquery html forms input

问题是: 我有一个输入文本类型元素,旁边有一个按钮。

单击按钮后,输入内的所选文本必须使用html元素进行换行。例如,单击该按钮时,所选文本将包含<span style='color:red'></span>

有没有人有任何解决方案?

2 个答案:

答案 0 :(得分:2)

正如@RémyJ所写,您可以使用jQuery select事件来获取选择。试试这个:

var start, end;
$('#tf').select(function(e) {
    start = e.target.selectionStart;
    end = e.target.selectionEnd;
});

$('.wrap').click(function() {
    var val = $('#tf').val();
    var newVal = val.substr(0, start) + '!' + val.substr(start, (end-start)) + '!' + val.substr(end);
    $('#tf').val(newVal);
});

HTML:

<input type="text" id="tf"> 
<button type="button" class="wrap">wrap</button>

http://jsfiddle.net/qh95xyeq/

答案 1 :(得分:0)

有人提出了类似的问题here。 您可以使用JQuery select方法(here)或JS选择方法(here)。然后用HTML包装块替换选择。