我們有一個HTML頁面。是否可以選擇(通過鼠標)一個段落的幾個單詞,獲取對這些選定單詞的引用並將它們封裝,例如通過編程方式由<span>...</span>
標記?我們可以使用jQuery或HTML5/CSS3?從文本標記幾個詞
Q
從文本標記幾個詞
2
A
回答
3
您可以使用mouseup
處理程序並使用getSelection
。假設你有一個名爲testtagging
的div,那麼這是一種將跨度添加到該div內的選定文本的方法。見this jsfiddle。
$('#testtagging').on('mouseup',tag);
function tag(e){
tagSelection('<span style="color:red">$1</span>');
}
function tagSelection(html) {
var range, node;
if (document.selection && document.selection.createRange) {
//IE
range = document.selection.createRange();
range.pasteHTML(html.replace(/\$1/,range.text));
return true;
}
if (window.getSelection && window.getSelection().getRangeAt) {
//other browsers
range = window.getSelection().getRangeAt(0);
node = range.createContextualFragment(
html.replace(/\$1/,range.toString())
);
range.deleteContents();
range.insertNode(node);
}
return true;
}
[編輯]調整與IE使用太。 JsFiddle也是改編的
0
提出的所有段落自動換行到span
元素:
var r = /(\S+)/ig;
var text = $("p").text();
$("p").html(text.replace(r, "<span class='w'>$1</span>"));
然後綁定懸停/單擊事件:
$("p > .w").on("hover", function()
{
$(this).toggleClass("hover");
})
.on("click", function()
{
$(this).toggleClass("selected");
});
如果要分析從所選文本範圍的話,你應該使用window.getSelection()
。
請參閱this問題或者讓我改編此代碼。
相關問題
- 1. 從標記詞創建列
- 2. 文本標記生成器 - 從文本
- 3. 從ggplot條形圖中的勾號中刪除幾個文本標記陰謀
- 4. 將文本輸入到兩個文本框中並標記相同的單詞
- 5. 記事本++:標記一個單詞,然後用[word]
- 6. 標記化數據從文本文件
- 7. 從標記的文本文件
- 8. 從文件中刪除標記文本
- 9. 在文本文件中找到並標記單詞
- 10. 用Python替換文本中的幾個單詞
- 11. 從文本中獲取3個單詞
- 12. Android地圖「滯後」與幾個標記
- 13. 有一個單一記錄的幾個同義詞
- 14. 在文本標記
- 15. OCR文本+標記
- 16. NLP文本標記
- 17. Python中的詞級標記標記
- 18. 從HTML標記中提取文本?
- 19. 從文本中刪除ahref標記mysql
- 20. 如何提取從HTML標記文本
- 21. jQuery從HTML標記中移除文本
- 22. 從標記頁訪問資源文本
- 23. 從文本中刪除Word 2007標記
- 24. 從錨標記獲取文本
- 25. 如何動畫標記物在有幾十個標記的標記集羣
- 26. 任何簡單的jQuery方法將文本從幾個文本框轉移到其他幾個文本框?
- 27. 標記ANTLR中的標記文本
- 28. 從幾個文本框中填充文本區
- 29. 在SWT文本框中選擇/標記特定單詞
- 30. 加載列表(從幾個中的一個)從文本文件到Bash腳本
非常感謝,聽起來很不錯。我將學習這段代碼並讓你知道。 – Cartesius00 2012-07-11 10:05:11