6 html javascript jquery dom insert
如何在DOM中搜索文档文本中的某个字符串(例如"cheese"),然后在该字符串后立即插入一些HTML(例如,"<b>非常棒</ b>").
我尝试过以下方法:
for (var tag in document.innerHTML) {
if (tag.matches(/cheese/) != undefined) {
document.innerHTML.append(<b>is fantastic</b>
}
}
Run Code Online (Sandbox Code Playgroud)
(上面更多的是我尝试过的例子,而不是实际的代码.我希望语法是非常错误的,所以请原谅任何错误,它们不是问题).
干杯,
皮特
有一些本机方法可以在文档中查找文本:
MSIE:textRange.findText()
其他:window.find()
如果找到了某些内容,则操纵给定的textRange.
这些方法应该提供比遍历整个文档更多的性能.
例:
<html>
<head>
<script>
function fx(a,b)
{
if(window.find)
{
while(window.find(a))
{
var node=document.createElement('b');
node.appendChild(document.createTextNode(b));
var rng=window.getSelection().getRangeAt(0);
rng.collapse(false);
rng.insertNode(node);
}
}
else if(document.body.createTextRange)
{
var rng=document.body.createTextRange();
while(rng.findText(a))
{
rng.collapse(false);
rng.pasteHTML('<b>'+b+'</b>');
}
}
}
</script>
</head>
<body onload="fx('cheese','is wonderful')">
<p>I've made a wonderful cheesecake with some <i>cheese</i> from my <u>chees</u>e-factory!</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是粗糙的,而不是这样做的方式,但是;
document.body.innerHTML = document.body.innerHTML.replace(/cheese/, 'cheese <b>is fantastic</b>');
Run Code Online (Sandbox Code Playgroud)