我有一个很大的段落,例如
<p> hello this is my paragraph </p>
所以我想要在整个文本中的选定文本上附加一个标记,所以如果我在“我的段落”上突出显示,我希望段落如下所示
<p> hello this is <span>my paragraph</span></p>
谢谢大家
发布于 2018-12-24 13:46:37
通过使用surroundContents()
,你可以很容易地使用javascript来实现这一点。
<div onclick="addSpanEle()">hello this is my paragraph</div>
function addSpanEle() {
var span = document.createElement("span");
if (window.getSelection) {
var selectedText = window.getSelection();
if (selectedText.rangeCount) {
var range = selectedText.getRangeAt(0).cloneRange();
range.surroundContents(span);
selectedText.removeAllRanges();
selectedText.addRange(range);
}
}
}
对于jquery:在这里检查小提琴演示:http://jsfiddle.net/BGKSN/24/
发布于 2018-12-24 14:11:01
我正在搜索你的答案,并找到了:Add tags around selected text in an element。
下面是我从提供的链接中复制的主要代码。
<p> My sample paragraph </p>
<style>
span {color: red;}
</style>
<script type="text/javascript">
function getSelectedText() {
t = (document.all) ? document.selection.createRange().text : document.getSelection();
return t;
}
$('body').mouseup(function(){
var selection = getSelectedText();
var selection_text = selection.toString();
// How do I add a span around the selected text?
var span = document.createElement('SPAN');
span.textContent = selection_text;
var range = selection.getRangeAt(0);
range.deleteContents();
range.insertNode(span);
});
</script>
发布于 2018-12-24 13:43:02
如下所示,找到desire容器,并使用span进行包装。
$("p:contains('my paragraph')").html(function(_, html) {
return html.replace(/(my paragraph)/g, '<span class="yourclass">$1</span>');
});
.yourclass {
background-color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p> hello this is my paragraph </p>
https://stackoverflow.com/questions/53909535
复制相似问题