尝试使用JavaScript查找关键字并将其斜体
Trying to find keywords and italicize them using JavaScript
我试图创建一些东西,将搜索整个网页的某些关键字,并使用纯JavaScript斜体他们。我最近甚至没有尝试过任何与JavaScript相关的事情,所以我不知道为什么这不起作用。我试过谷歌搜索,但没有用处,特别是我的问题(我发现的一切都是试图改变一个元素的class
,而不是只是基本的css属性)。我真正想知道的是为什么不起作用。以下是目前为止的内容:
<html>
<head>
<script>
var str = document.getElementsByTagName("*").innerHTML;
var n = str.match(/(Nautilus|Captain Nemo)/i);
n.style.fontStyle = "italic";
</script>
</head>
<body>
The Nautilus was a ship run by Captain Nemo.
</body>
</html>
应该产生如下结果:鹦鹉螺号是一艘由尼摩船长驾驶的船。
我没有经验的逻辑说我应该(尝试)将整个文档解析为一个大字符串,然后使用regex为关键字匹配该字符串,然后更改style.fontStyle
。
现在,就像我说的,我甚至没有碰JavaScript甚至jQuery一段时间了,因为现在很忙,所以我可能会离开,但任何帮助将是非常感激的!
这里n
只是一个字符串。它不是页面上的节点。并且只有页面上的节点可以拥有与其父节点不同的样式。你不能简单地告诉一个字符串是斜体。它只是一个字符串,根本没有关联的固有表示信息。
所以要做到这一点,你必须:
- 查找文本
- 在
<em>
元素中包裹文本,对于每个匹配 - 将结果HTML字符串插入文档
或者在JS中:
// get all body content as a string
var str = document.body.innerHTML;
// find all magic words and wrap them in a <em> tag
var result = str.replace(/(Nautilus|Captain Nemo)/ig, "<em>$1</em>");
// set all body content HTML with new processed content
document.body.innerHTML = result;
看它在这里工作:http://jsfiddle.net/2px7m/
var str = document.getElementsByTagName('body');
//Use g so it will be global
var regex= /(Nautilus|Captain Nemo)/ig;
str[0].innerHTML = str[0].innerHTML.replace(regex, "<i>$1</i>");
相关文章:
- 如何使用手柄呈现斜体/粗体文本
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- TinyMCE 将另一个事件添加到粗体和斜体按钮
- 如何使钛文本区域中的单词加粗或斜体
- 如何使用 ExtendScript 从 InDesign 文档的所有脚注引用中删除斜体和粗体样式
- html(或 asp.net)文本框中的斜体和普通文本
- 使用 Perl 在 Twitter 上发布斜体
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 在谷歌脚本中创建的电子邮件正文上应用下划线,粗体,斜体等
- 铬中的 CKEDITOR 在光标位置添加“?”标记,同时应用任何样式(粗体/斜体)而不选择
- 平滑地从普通文本淡入斜体文本
- 使用引导将斜体文本转换为工具提示
- 单击粗体或斜体标记时,光标位于中间
- 所见即所得编辑器,仅用于粗体斜体和列表
- 斜体字在Javascript中不起作用'alert()'方法
- 尝试使用JavaScript查找关键字并将其斜体
- 脚本将斜体字体更改为JS中的标准字体
- 在jQuery和/或javascript中检索页面上的所有斜体文本片段
- 想要检查文本是否斜体,如果是,则突出显示文本框中的文本
- 计数粗体和斜体在编辑器或ckeditor