JS抓住dom中有双引号的任何文本

时间:2016-07-14 14:13:43

标签: javascript jquery html

寻找一个脚本,该脚本将检查页面是否包含双引号的文本,例如你好世界,“这是一个很好的例子”。所以抓住“这是一个很好的例子”并将其包装在<em>标签

结果将是<em>"this is a great example"</em>

这可能吗?

2 个答案:

答案 0 :(得分:1)

使用jQuery很容易实现:

&#13;
&#13;
$('body :not(script, style)').contents().filter(function() {
  // find text nodes in <body> ignoring <script> and <style> tags
  return this.nodeType === 3;
}).replaceWith(function() {
  // find quoted text and wrap it with <em> tags
  return this.nodeValue.replace(/"[^"]+"/g, '<em>$&</em>');
});
&#13;
span {
  color: #00f;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<p>
  Hello world! "This is a great example"<br>
  <span>Hello world! "This is a great example"</span>
</p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以使用这样的javascript在整个页面中查找正则表达式:

var matchingText = document.documentElement.innerHTML.match(/"(.*?)"/);

结果将是一个带双引号字符串的数组。

您可以迭代它们并为每个标记添加<em>标记。