我正在自学 JavaScript 和 JQuery,并在学习过程中通过一个简单的词汇表应用程序工作。目前,我的词汇表术语位于两个 json 文件中(一个用于术语,一个用于首字母缩略词)。当我单击术语表或首字母缩略词表中可用的单词时,我有一个带有文本的页面和代码以在警报中显示定义。那部分正在工作。我想做的是能够更改文本中具有匹配定义(颜色、下划线等)的每个单词的样式。我想我需要使用循环来检查词汇表中的单词是否(我已经可以这样做)然后应用,但我不确定跨度在动态执行时是否有效。我的代码中的一个跨度标记是已在此处发布的另一个问题中发布的修改示例,我让它为我工作,我' 我只是不太确定它是如何做的。有人有时间让我朝着正确的方向前进吗?
//breaks the paragraph html into word by word targets
var p = $('p#paragraph');
var words;
p.html(function(index, oldHtml) {
words = oldHtml.replace(/\b(\w+?)\b/g, '<span class="word">$1</span>')
return words;
});
//when word is clicked checks to see if word in the glossary, if so displays alert box with word and definition
p.click(function(event) {
if (this.id != event.target.id) {
var termNeeded = event.target.innerHTML;
//checks Terms json first
var checkAcronyms = true;
for (var i = 0; i < jsonTerms.GlossaryTerms.length; i++) {
var obj = jsonTerms.GlossaryTerms[i];
if (obj.term == termNeeded) {
alert(obj.term + ": " + obj.definition);
checkAcronyms = false;
break;
};
};
//if the word is not in the terms, then checks in the acronyms
if (checkAcronyms == true){
for (var i = 0; i < jsonAcronyms.GlossaryAcronyms.length; i++) {
var obj = jsonAcronyms.GlossaryAcronyms[i];
if (obj.term == termNeeded) {
alert(obj.term + ": " + obj.definition);
break;
};
};
};
};
});
//brings in the JSON data
var jsonTerms;
$.getJSON("GlossaryTerms.json", function(data) {
jsonTerms = data;
//console.log(jsonTerms);
});
var jsonAcronyms;
$.getJSON("GlossaryAcronyms.json", function(data) {
jsonAcronyms = data;
//console.log(jsonAcronyms);
});