如何从当前插入符号移动到具有特定类名的标记
How to move to the tag with has specific class name from a current caret
我正在编写搜索HTML的程序。
我用 span 标签包装了搜索关键字,该标签事先具有"查找"类,如下所示:
<b><span class="find">A</span>
<i>B</i>C</b>DDD<b><span class="find">A</span></span><i>B</i>C</b>
当单击"下一个"或"上一个"按钮时,我想从当前选择点移动到最近的下一个/上一个跨度标签(我从window.getSelection()
那里得到)。
如果"jQuery(selection.focusNode).next('.find');"
可以用于它,我会简单地解决它,但它是无效的。有什么好方法吗?
也许你可以做这样的事情:
var foo = {
spans: $('span.find'),
pos: -1,
getSpan: function(inc) {
var pos = this.pos + inc;
if (pos >= 0 && pos < this.spans.length) {
this.pos = pos;
return this.spans[this.pos];
}
return undefined;
},
next: function() {
var span = this.getSpan(1);
// do what you have to do with it
},
prev: function() {
var span = this.getSpan(-1);
// do what you have to do with it
},
}
然后"连接"下一个并返回您的按钮。
这就是你要找的?
http://jsfiddle.net/sLwuN/
爪哇语
$("#prev").click(function(){
foundElement($(getSelection().focusNode.parentNode).prevAll('.find').first());
});
$("#next").click(function(){
foundElement($(getSelection().focusNode.parentNode).nextAll('.find').first());
});
function foundElement ($element) {
if ($element) {
$element.css('color', 'red');
setTimeout(function () {
$element.css('color', 'inherit');
}, 500);
}
}
.HTML
<span class="find">A</span>
<i>BBBBB</i>
<span class="find">B</span>
<span class="find">CC</span>
<i>CCCCCC</i>
<span class="find">D</span>
<button id="prev">prev</button>
<button id="next">next</button>
相关文章:
- 将插入符号位置移动到ContentEditable<DIV>
- Azure移动服务;插入到另一个表&呼叫'插入'剧本
- Javascript(动态)插入到数组中,然后移动+1下面的所有元素
- 在光标位置插入HTML,并使用javascript将光标移动到插入的HTML的末尾
- 如何动态插入新的顶栏并向下移动所有原始内容
- 将插入符号移动到焦点上文本区域的末尾
- 仅在使用 javascript 的非移动浏览器上插入 Google 实验代码
- 如何从当前插入符号移动到具有特定类名的标记
- 如何在内容可编辑列表项(不同缩进)之间移动插入符号,同时保持插入符号 x 偏移量
- 通过javascript插入元素,而不会丢失jquery移动样式页面
- 使用Rangy将键盘插入符号移动到元素的末尾
- 如何在不移动原始位置的情况下将html元素插入另一个元素之前
- 防止移动默认键盘同时保留文本插入光标
- 插入内联元素并设置向左移动的动画
- 如何在Window.selection()文本框中移动插入符号?
- 当插入符号在文本区域的行之间移动时触发事件
- Azure移动服务插入后端脚本错误
- 如何添加到一个数组在Javascript中插入一个数字和数字后移动到右边
- 在tinyMCE编辑器中,将插入符号移动到单词的末尾
- Azure移动服务-在插入脚本上更改用户模型