Wildcard matching after each character

$(':input[data-provide="typeahead"]').typeahead({
    source: function (query, process) {
        if (this.timer) clearTimeout(this.timer);

        var url = $(this.$element).attr('data-provider-url')
        this.timer = setTimeout(function () {
            $.getJSON(url, { query: query }, function (data) {
                labels = [];
                mapped = {};

                $.each(data, function (i, item) {
                    mapped[item.value] = item.key;
                    labels.push(item.value)
                });

                process(labels);
            })
        }, 1000);
    },
    items: 10,
    minLength: 4,
    updater: function (item) {
        var element = $(this.$element);
        setTimeout(function () {
            $(element).trigger("change.validation");
        }, 1);
        //$(this.$element).next('input').val(mapped[item]);
        //return mapped[item]
        return item;
    },
    // This matcher matches this input: 'abc' as 'a.*b.*c.*'
    matcher: function (item) {
        // Here, the item variable is the item to check for matching.
        // Use this.query to get the current query.
        // return true to signify that the item was matched.
        if (!this.query) return false;
        // Create a string like a.*b.*c.*
        var squery = this.query.split('').join('.*');
        return item.match(new RegExp(squery, 'ig'));
    },
    highlighter: function (item) {
        var query = this.query.split('').join('.*');
        return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
            return '<strong>' + match + '</strong>'
        })
    }
});

Um für ein Element (Obeject) den Selector zu bekommen, kann man folgendes Snippet verwenden:

var selector = $(element).parents()
                .map(function() { return element.tagName; })
                .get().reverse().join(" ");

if (selector) {
    selector += " " + $(element)[0].nodeName;
}

var id = $(element).attr("id");
if (id) {
    selector += "#" + id;
}

var classNames = $(element).attr("class");
if (classNames) {
    selector += "." + $.trim(classNames).replace(/\s/gi, ".");
}
alert(selector);

So kann man jQuery nachträglich in eine beliebige Seite mit JavaScript einfügen.

(function() {
var script = document.createElement("script");
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js";
script.onload = script.onreadystatechange = function(){ /* your callback here */ };
document.body.appendChild( script );})()
Veröffentlicht unter jQUery.

Hier möchte ich zeigen wie man relative URLs mit JavaScript realisieren kann.
Oft ist ein Projekt nicht immer unter der selben Relativen URL erreichbar, vor allem während der Entwicklung

Zum Beispiel:

Hier ein Code Beispiel, wie man Relative URLs mit Javascript realisieren kann:

Im Beispiel werden Kohana und jQuery genutzt.

< !DOCTYPE html>
<html lang="en">
    <head>
        <base href="<?php echo URL::Base(); ?/>" />
    </head>
    <body>
        <div id="content"></div>
 
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
        <script type="text/javascript">
            $.url = function(url) {
                return $('base').attr('href')+url.substr(1);
            }
            $('#content').get($.url('/account/login'));
        </script>
    </body>
</html>