我正在尝试为我的网页创建词汇表,如果我的词汇表中包含整个单词,则会在弹出的工具提示中定义它们。
我找到了一个效果很好的jquery插件,但是,我需要对其进行一些修改,并且我对JSON / javascript没有经验。
这是JSON文件的格式:
{
"term" : "termC",
"description" : "definition C"
},
{
"term": "term D",
"description": "definition D"
}
]
我想添加到JSON文件中以使其像这样的额外层:
[
{
"A" : [
{
"term" : "termA",
"description" : "definition A"
},
{
"term": "term B",
"description": "definition b"
}
]
"B" : [
{
"term" : "termC",
"description" : "definition C"
},
{
"term": "term D",
"description": "definition D"
}
]
}
并且仍然可以使用javascript。
我在GitHub的https://github.com/PebbleRoad/glossarizer上找到了该插件。 javascript是一个长文件,为了尊重StackOverflow的规则,我无法覆盖整个文件,但这是我认为重要的部分:
base.terms = []
/* Excludes array */
base.excludes = []
/* Replaced words array */
base.replaced = []
/* Regex Tags */
base.regexOption = (base.options.caseSensitive ? '' : 'i') + (base.options.replaceOnce ? '' : 'g')
/* Fetch glossary JSON */
$.getJSON(this.options.sourceURL).then(function (data) {
base.glossary = data
if (!base.glossary.length || base.glossary.length == 0) return
/**
* Get all terms
*/
for (var i = 0; i < base.glossary.length; i++) {
var terms = base.glossary[i].term.split(',')
for (var j = 0; j < terms.length; j++) {
/* Trim */
var trimmed = terms[j].replace(/^\s+|\s+$/g, ''),
isExclusion = trimmed.indexOf('!')
if (isExclusion == -1 || isExclusion != 0) {
/* Glossary terms array */
base.terms.push(trimmed)
} else {
/* Excluded terms array */
base.excludes.push(trimmed.substr(1))
}
}
}
/**
* Wrap terms
*/
base.wrapTerms()
})
}