Javascript 将字符串分成几段,并用js将每段用html包装
我正在使用一个内容可编辑的div来尝试制作标签。当用户按return键时,我需要能够选择上一个文本而不是上一个标记,并将其转换为新标记。标记将被包装在中,因此示例如下:Javascript 将字符串分成几段,并用js将每段用html包装,javascript,jquery,Javascript,Jquery,我正在使用一个内容可编辑的div来尝试制作标签。当用户按return键时,我需要能够选择上一个文本而不是上一个标记,并将其转换为新标记。标记将被包装在中,因此示例如下: <em>tag1></em><em>tag2</em>tag3--- // about to press enter for tag3 这就是我目前的想法: $('#tags').keydown(function(e) { i
<em>tag1></em><em>tag2</em>tag3--- // about to press enter for tag3
这就是我目前的想法:
$('#tags').keydown(function(e) {
if (e.keyCode == 13 || e.which == 13) {
paste('---'); // this adds a separator when the user presses enter
var content = $(this).html();
var newTag = // the text between the last </em> and ---
newtag.wrapInEm(somehow);
event.preventDefault();
return false;
}
});
我很难理解你的问题,因为有一些拼写错误,而且你的html示例没有任何意义 然而: 使用[.wrap]jquery函数怎么样
$('#tags'.keydown(function(e) {
if (e.keyCode == 13 || e.which == 13) {
$([selector for previous text]).text().wrap(<em></em>);
}
});
也许您应该将当前标记与新标记创建分开 HTML JS
…前面文本的jQuery选择器是?给我一些html或编辑您当前拥有的内容,我会给您一个选择器。你的问题是,我不知道怎么做。
<div id='tags'>
<span id='tag-list'></span>
<span id='tag-new' contenteditable></span>
</div>
(function($){
var tags = ['tag1', 'tag2'];
$('#tag-new').on("keydown", function(e) {
e.preventDefault();
if (e.keyCode == 13 || e.which == 13) {
// if (!saveToDB) return;
tags.push($(this).text());
_renderTags();
return false;
}
});
$('#tag-list').on("click", "em", function(e){
// if (!deleteFromDB) return;
var idx = tags.indexOf($(this).html());
tags.splice(idx,1);
_renderTags();
});
function _renderTags(){
$('#tag-list').html("<em>" + tags.join("</em><em>") + "</em>");
}
$(document).ready(function(){
// loadTagsFromDB
_renderTags();
});
})(jQuery);