Javascript 获取特定元素引用周围的文本
具有如下HTML代码段:Javascript 获取特定元素引用周围的文本,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,具有如下HTML代码段: <p>Lorem ipsum <mark>dolor</mark> sit amet. <mark>Lorem</mark> ipsum again and <mark>dolor</mark></p> 现在我是这样的: var$highlightMarks=$(“标记”); var结果=[]; 对于(变量i=0;i
<p>Lorem ipsum <mark>dolor</mark> sit amet. <mark>Lorem</mark> ipsum again
and <mark>dolor</mark></p>
现在我是这样的:
var$highlightMarks=$(“标记”);
var结果=[];
对于(变量i=0;i<$highlightMarks.length;++i){
var$c=$highlightMarks.eq(i);
var text=$c.parent().text().trim().replace(/\n/g,“”);
var indexStart=newregexp($c.html(),“gim”).exec(text).index;
text=“[…]”+text.substring(indexStart-5,$c.html().length+indexStart+5)+“[…]”;
结果:推送(文本);
}
警报(JSON.stringify(结果))
Lorem ipsum dolor sit amet。Lorem ipsum和dolor。
我成功了,直到今天。您可以这样做:
var results=$(“p”).clone().find(“mark”).html(“1”).after(“”.end().html().trim();
结果=结果分割(“1”);
结果=results.map(Function.prototype.call,String.prototype.trim);
最终=[];
对于(var i=0;i
Lorem ipsum dolor sit amet。同侧眼睑
还有多洛
您可以使用简单的正则表达式来完成
[\w\s.]{5}
=标记前后的5个字符
[^可以使用jquery contents()函数完成。我们可以通过指定索引来选择元素内部的文本片段。请检查下面的代码,我已经开发了一个逻辑并实现了它
$(文档).ready(函数(){
var marks=$('mark')//获取所有mark元素
var j=0;
对于(var i=0;i这是一个仅使用正则表达式的两步防弹实现(欢迎反例)
它最大的优点是独立于标记容器工作(就像..
提取标记周围的文本一样)
var过滤器=//gi;
var regex=/((?:(?!){0,5})([输出到底应该是什么?为什么要投票?它给出了需要的输出……必须给出一些原因:/除非下流者解释,我认为下注无效,因此给你1。注意,如果模式不是动态的,使用ReGEXP构造函数不是一个好主意。此外,你不需要在构造函数NOTA内部逃脱<代码> /<代码>。激动。
[
"[...] psum dolor sit [...]",
"[...] met. Lorem ipsu [...]",
"[...] and dolor [...]",
]