【发布时间】:2021-08-31 13:38:51
【问题描述】:
我想要达到的目标:
online 一词应显示为绿色,而 offline 一词应显示为黄色。每次加载我的网页。
我做了什么:我整天都在谷歌上搜索这个,甚至在 stackoverflow 上。我只能找到;
<head>
<style>
.found {
color:red;
}
</style>
</head>
<body>
<input id="s">
<div id="a">
i am online he is offline.
</div>
<script id="jsbin-javascript">
var s = document.getElementById('s');
var div = document.getElementById('a');
function changeNode(n, r, f) {
f=n.childNodes; for(c in f) changeNode(f[c], r);
if (n.data) {
f = document.createElement('span');
f.innerHTML = n.data.replace(r, '<span class=found>$1</span>');
n.parentNode.insertBefore(f, n);
n.parentNode.removeChild(n);
}
}
//s.onkeyup
s.onkeyup = function(){
var spans = document.getElementsByClassName('found');
while (spans.length) {
var p = spans[0].parentNode;
p.innerHTML = p.textContent || p.innerText;
}
if (this.value) changeNode(
div, new RegExp('('+this.value+')','gi')
);
};
</script>
</body>
因此,每当我在输入框中输入内容时,这些词都会突出显示。但是,我希望这种情况在没有 ant 输入框的情况下自动发生,并且单词 online 为绿色,offline 为黄色。
提前致谢。
【问题讨论】:
-
为什么不将它们包装在 HTML 中的 span 中?
-
可以使用javascript onload事件
-
老实说,您目前拥有的解决方案并不适合您想要做的事情。正如@gcampbell 建议的那样,将它们拆分为元素会更好,样式化它们会是最好的。
-
这可能会有所帮助 - stackoverflow.com/questions/8644428/…
-
试试我的新答案
标签: javascript html css