有沒有辦法用jQuery或JavaScript捕獲字值?在例如:jquery捕獲字值
搜索:五月
當我點擊本月行情「搜索」或「行情」或任何字,我提醒這個詞的文字?
更新:
這就是我的意思:
有沒有一種方法,我可以得到文本值不包成一些HTML元素?
有沒有辦法用jQuery或JavaScript捕獲字值?在例如:jquery捕獲字值
搜索:五月
當我點擊本月行情「搜索」或「行情」或任何字,我提醒這個詞的文字?
更新:
這就是我的意思:
有沒有一種方法,我可以得到文本值不包成一些HTML元素?
要查找較長段落中的特定單詞,您必須創建Range objects和TextRange's以查找段落中特定單詞的座標。一旦爲每個單詞映射了座標,就可以將窗口單擊事件座標與範圍內的單詞相匹配。
Retrieving DOM textnode position的問題與您所追求的內容有些相似之處。
總之,我認爲應該完全可以準確地得到被點擊的單詞,即使在更長的段落中,但它肯定不是很容易,對於較長的文本片段,它可能最終非常低效。爲Mozilla/WebKit瀏覽器
編輯,你可以做這樣的:
$(document).ready(function() {
$("body").click(function(){
var s = window.getSelection();
s.modify('extend','backward','word');
var b = s.toString();
s.modify('extend','forward','word');
var a = s.toString();
s.modify('move','forward','character');
alert(b+a);
});
});
例如: http://jsfiddle.net/niklasvh/rD2uE/
它不能在IE <的工作,雖然= 8,你會可能需要使用IE選擇做不同的解決方案。
如果不將它包裝在HTML節點中,您無法做到這一點。
您可以將一些Javascript魔術應用於「解包文本」,這基本上意味着Textnode
。這可能是這樣的:
$('#foo').contents().each(function(_, node) {
var nodelist = node.textContent.split(/\s/).map(function(word) {
return $('<span>', {
text: word + ' ',
click: function() {
alert($(this).text());
}
}).get(0);
});
$('#foo').empty().append(nodelist);
});
我只是寫下來。還有很多優化潛力,但它應該給你一個關於如何實現它的基本想法。
你的問題沒有意義。說明你的目標的代碼示例肯定會使這個更清晰。您也可以使用http://jsfiddle.net來播放和發佈HTML/CSS/javascript片段。 – 2011-05-30 21:47:52
雙擊單詞以提醒您單擊的單詞的文本? – 2011-05-30 21:48:50
類似於http://stackoverflow.com/questions/396649/retrieving-dom-textnode-position? – Niklas 2011-05-30 21:49:28