如何将类应用于数组中段落标记中的所有单词
How can I apply a class to all words in a paragraph tag which are in an array?
假设我有一段定义为
<p>Here is a short paragraph of text which has repeating words. Words such <br>
as these will have a span around them which changes a property of words in a <br>
paragraph.
</p>
有一个脚本,它有一个单词数组,我想把这个类应用到其中
var blueWords = ["paragraph", "words", "which", "a"];
如何迭代段落中的每个项目并附加
<span color="blue"></span>
围绕blueWords数组中的预定义单词?这在jQuery中可能很容易做到,但我不确定如何做到这一点。
这里有一个非jQuery解决方案:
我在你的段落中添加了一个名为"test"的id,并创建了一个称为blue的样式。
然后。。。
var ParagraphText = document.getElementById('test').innerHTML;
var blueWords = ["paragraph", "words", "which", "a"];
function MakeWordsBlue(ParagraphText, blueWords) {
var i = 0;
for (i = 0; i < blueWords.length; i++) {
ParagraphText = ParagraphText.replace(blueWords[i], '<span class="blue">' + blueWords[i] + '</span>')
};
document.getElementById('test').innerHTML = ParagraphText;
};
MakeWordsBlue(ParagraphText, blueWords);
</script>
我更喜欢RegExp的答案。但是,一个循环也可以做到这一点:
var blueWords = ["paragraph", "words", "which", "a"],
text = $('#mytext').text().split(' '),
outputStr = "";
for(i=0;i<text.length;i++) {
if (blueWords.indexOf(text[i]) >= 0) {
outputStr += '<span class="blue">' + text[i] + '</span> ';
}
else outputStr += text[i] + ' ';
}
$('#mytext').html(outputStr);
(http://jsfiddle.net/ajK7B/)
您可以尝试以下代码:
$('p').html($('p').html().replace(/('sparagraph's|'swords's|'swhich's|'sa's)/ig, '<span style="color: blue">$1</span>'))
它使用Regex的替换方法。Regex是在字符串中进行搜索的一种强大方法。
相关文章:
- Javascript-从随机的单词数组中创建段落
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- 如何通过php跳过段落中的一些单词
- 淡入段落的每个单词在不同的随机时间效果中
- 遍历段落中的单词
- 在文本段落中查找单词
- 正则表达式用于匹配段落中的单词,但排除内部 HTML 标记
- 用 html 标记替换段落中的每个单词
- 分开一个段落列表,给每个单词单独的CSS
- 在CodeMirror中查找自定义语言模式的段落的第一个单词和最后一个单词
- 如何生成“"在段落中的某些单词之后.Javascript
- Javascript:如何找到在长段落中选择了特定文本的哪个实例(例如,一个单词在一段中出现多次)
- 使用JavaScript查找段落中的单词行号
- 如何将类应用于数组中段落标记中的所有单词
- 统计jquery中一个区分大小写的单词在一个段落中出现的次数
- 用javascript中的随机单词替换段落标签内容
- 为段落的第一个单词设置样式
- 检测段落中一个或多个单词的子字符串
- 尝试创建一种机制,在javascript中找到段落中的单词并将其替换为另一个单词
- 如何一次显示一个段落的一个新单词,通过按键或鼠标点击移动