Javascript(jQuery)… 筛选选择器中文本中的字符
Javascript (jQuery) … filter for a character within a text inside a selector?
什么是最佳解决方案以及如何做到这一点。
我的网站上有这个…
<div class="desc">
<p>
Some text that is set via a CMS and is completely dynamic.
It contains sometimes a character like this § in the middle of the text.
It could also contain another one §, you see!
</p>
</div>
我想知道如何过滤字符§
的文本,并将其包装在一个跨度内。
<span class="symbol">§</span>
对此有什么想法吗?当我这样做的时候,我不想在我的网站上降低很多性能。
提前感谢您,Matt
findAndReplaceDOMText
是一个很好的库,可以完成这项工作以及更多工作(如果您需要功能的话)。
findAndReplaceDOMText在DOM节点中搜索正则表达式匹配项,并用指定的元素包装所有匹配项(以及由节点边界分隔的部分匹配项)。
Github:https://github.com/padolsey/findAndReplaceDOMText
演示:http://padolsey.github.com/findAndReplaceDOMText/demo.html
它使用正则表达式匹配字符串,并将自动适用于分布在多个节点上的字符串:
<p id="t">
123 456 99<span>9 foo</span>
</p>
findAndReplaceDOMText(/9+/, document.getElementById('t'), 'em');
这将导致:
<p id="t">
123 456 <em>99</em><span><em>9</em> foo</span>
</p>
(示例来自https://github.com/padolsey/findAndReplaceDOMText/blob/master/readme.md)
试试这个:
$(".desc p").each(function() {
$(this).html($(this).text().replace(/§/g, "<span class='"symbol'">§</span>"))
});
小提琴示例
参见演示
$('p').each(function () {
$(this).html($(this).text().replace(/'$/g, '<span>$</span>'));
});
我会找到所有包含§
符号的段落(不需要匹配每个段落),并包装该符号的每个出现
$(".desc p:contains('§')").each(function() {
$(this).html($(this).text().replace(/§/g, '<span class="symbol">§</span>'));
})
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery最近父级的数据属性选择器
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- jquery IE7中的第n个选择器
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- jquery日期选择器年份范围默认值
- jquery日期选择器失去了交互性
- 正在搜索JavaScript日期选择器滑块
- 如何将返回的值应用于多个不同位置的多个选择器
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- 如何在多个jQueryUI日期选择器中屏蔽特定日期
- jquery日期选择器显示与值不同的文本
- jQuery选择器无法正常工作
- 文档就绪提供了错误的选择器高度
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”