SilverlightでjQuery

さっきのやつでサーバーサイドからクライアントサイドのJavaScriptを呼び出せる事がわかったので、さっそくjQueryのラッパークラスを作ってみた。

jQuery.cs
class jQuery {
    private static readonly HtmlWindow window = HtmlPage.Window;

    private ScriptObject element;

    public jQuery(string expression) {
        element = (ScriptObject)window.Invoke("$", expression);
    }

    public jQuery Text(string text) {
        element.Invoke("text", text);

        return this;
    }
    public jQuery Append(params object[] content) {
        foreach(var obj in content) {
            element.Invoke("append",
                (obj is jQuery) ? ((jQuery)obj).element : obj
            );
        }
        return this;
    }
}

使い方は本家っぽく、こんな感じ

new jQuery("#content").Append(
    new jQuery("<ul>").Append(
        new jQuery("<li>").Text("100"),
        new jQuery("<li>").Text("200")
    )
);

本家で書くとこれ。そっくり!!

$("#content").append(
    $("<ul>").append(
        $("<li>").text("100"),
        $("<li>").text("200")
    )
);

ちょっとおもしろそうなので、全機能実装してみよう。