Conti

by BeNdErR

HTML

<select id="autori"></select>
<div id="container"></div>

CSS

#container span{
    background: yellow;
}

JavaScript

var testo = "τίς ἔτι ποτ᾽ ἐν τοῖσδ᾽ ἀνὴρ <1a>][</1a>" +
    "<2b><2d>θυμῷ</2d> βέλη</2b><2e></2e><2a> ἔρξεται</2a> <2c>][</2c>" +
    "ψυχᾶς <3c>ἀμύνειν</3c>; <3b></3b>εἰ γὰρ αἱ <3a>][</3a>" +
    "τοιαίδε πράξεις <4a></4a>τίμιαι, <4b>][</4b>" +
    "τί δεῖ με χορεύειν; ][" +
    "~" +
    "φθίνοντα <6b></6b>γὰρ <6c></6c>Λαΐου <6d></6d> <6a>][</6a>" +
    "<7a>παλαιά</7a><7c></7c><7b>θέσφατ᾽</7b> ἐξ<7d>][</7d>" +
    "αιροῦσιν ἤδη, <8a></8a>κοὐδαμοῦ <8b>][</8b>" +
    "τιμαῖς Ἀπόλλων <9a></9a>ἐμφανής· <9b>][</9b>" +
    "ἔρρει δὲ τὰ θεῖα. ][";
var model = {
    traduzioni: {
        "Hermann 1833": {
            "2a": "",
        },
            "Erfurdt 1809": {
            "2a": "δέξεται",
        },
            "Bothe 1806": {
            "2a": "ἔχοι",
                "9a": "]["
        },
            "Brunck 1786": {
            "2a": "ἕξει",
        },
            "Musgrave 1800": {
            "2a": "εὔξεται",
        },
            "Hermann 1823": {
            "2a": "εὔξεται",
        }
    },
    autori: [
        "Bothe 1806",
        "Erfurdt 1811",
        "Hermann 1823;",
        "Wolff 1843",
        "Hermann 1833",
        "Erfurdt 1809",
        "Brunck 1786",
        "Musgrave 1800",
        "Hermann 1823"],
    tradId: [
        "1a", "2a", "2b", "2c", "2d", "2e", "3a", "3b", "3c", "4a", "4b", "6a", "6b", "6c", "6d", "7a", "7b", "7c", "7d", "8a", "8b", "9a", "9b"],
    crSymbol: "]["
}
$("#autori").append("<option value='-'>-</option>");
for (var x = 0; x < model.autori.length; x++) {
    $("#autori").append("<option value='" + model.autori[x] + "'>" + model.autori[x] + "</option>");
}
$("#autori").on("change", function () {
    replaceText(this.value);
})
$("#container").html(replaceCR(removeTags(testo)));

function replaceText(author) {
    var tmp = testo;
    for (id of model.tradId) {
        if (model.tradId.indexOf(id) > -1 && model.traduzioni[author] && model.traduzioni[author][id]) {
            var re = new RegExp("<" + id + ">.*<\/" +...