我基本上需要突出显示一个文本块中的特定单词.例如,假装我想在本文中突出显示"dolor"这个词:
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
</p>
<p>
Quisque bibendum sem ut lacus. Integer dolor ullamcorper libero.
Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>
Run Code Online (Sandbox Code Playgroud)
如何将上述内容转换为以下内容:
<p>
Lorem ipsum <span class="myClass">dolor</span> sit amet, consectetuer adipiscing elit.
</p>
<p>
Quisque bibendum sem ut lacus. Integer <span class="myClass">dolor</span> ullamcorper
libero. Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>
Run Code Online (Sandbox Code Playgroud)
这有可能与jQuery?
编辑:正如Sebastian 指出的那样,没有jQuery这很有可能 - 但是我希望有一个特殊的jQuery方法可以让你在文本本身上做选择器.我已经在这个网站上大量使用jQuery了,所以把所有内容都包含在jQuery中会让事情变得更加整洁.
对于这个问题,我需要找到特定节点下的所有文本节点.我可以这样做:
function textNodesUnder(root){
var textNodes = [];
addTextNodes(root);
[].forEach.call(root.querySelectorAll('*'),addTextNodes);
return textNodes;
function addTextNodes(el){
textNodes = textNodes.concat(
[].filter.call(el.childNodes,function(k){
return k.nodeType==Node.TEXT_NODE;
})
);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,鉴于XPath可以简单地查询.//text()并完成它,这似乎是不优雅的.
将所有文本节点放在HTML文档中的特定元素下的最简单方法是什么,适用于IE9 +,Safari5 +,Chrome19 +,Firefox12 +,Opera11 +?
"最简单"被宽松地定义为"有效且短暂,没有打高尔夫球".
假设我有以下标记:
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Some title</h1>
<p>First paragraph</p>
<p>Second paragraph</p>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)
我需要标记文本的某些部分,即"第一段secon"它看起来像这样:
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Some title</h1>
<p>F
<mark>
irst paragraph</p><p>Secon
</mark>
d paragraph</p>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)
但问题是html标记会被破坏.标记越复杂,这种方法就会遇到越多的问题.
题:
寻找关于如何获取第一个HTML示例并应用函数来返回html结构的想法,其中"irst paragraph second"以某种方式被特别标记.
我现在拥有的是:
JavaScript命令.replace可以替换任何网页中的文本吗?我想创建一个Chrome扩展程序来替换任何网页中的特定单词以说出其他内容(例如蛋糕而不是饼图).