inspect

by ihope

HTML

<script src="http://sprintf.googlecode.com/files/sprintf-0.7-beta1.js"></script>
<p id="fun" class="cls2 cls3 cls4"></p>

JavaScript

var s = "";
var F_ = {
    tag: "tagname-def",
    punct: "punc-def",
    condition: "condition-def",
    string: "string-def",
    attribute: "attribute-def",
    formatPatt: "<span class=\"xpath $FormatType \">$value</span>"
}
var DEFAULT_FORMAT;
/*
    @param o  input format Array
    @param f  input format rule 
*/

function $F(lookup) {
/*if (!(f || DEFAULT_FORMAT)) {
        return
    }
    if (f) {
        DEFAULT_FORMAT = f;
    }*/
    var ret = DEFAULT_FORMAT.formatPatt;
    var cb = function(match) {
        if (lookup[match]) return lookup[match];
        else return match;
    }
    for (i in lookup) {
        ret = ret.replace(new RegExp("(\$"+i+")",/i/), cb);

    }

    return ret;
}
//===================================
/*DEFAULT_FORMAT = F_;
alert($F(["jhjh", "jjj"], F_.attribute));*/
//===================================
DEFAULT_FORMAT = F_;

$$('#fun').each(function(v, i) {
    if (v.id) {
        alert($F({
            'FormatType': F_.attribute,
            'value': v.id
        }));
    }
});


alert(s);