0

多くの要素の1つをロードするJQueryがあります。たとえば<li>、リスト項目の多くの行から順序付けられていないリストの1つです。

  this.randomtip = function(){
        var length = $("#tips li").length;
        var ran = Math.floor(Math.random()*length) + 1;
        $("#tips li:nth-child(" + ran + ")").show();
    };

    $(document).ready(function(){
        randomtip();
    });

ただし、これを JQuery プラグインに変換して、よりグローバルに使用できるようにするとよいと思いました。これにより、さまざまな要素やユース ケースで必要なときに簡単に呼び出すことができます。

特定のセレクターを取り出して、$(this)おそらく他の JQuery プラグインのコードを見て、それらをに変換する必要があることに気付きました。

これは私がこれまでに持っているものですが、多くの構文エラーが発生しています。私は同じことを数時間何度も繰り返してみましたが、喜びはありませんでした:

(function ( $ ) {

    $.fn.randomtip = function () {

    var length = $(this).length;
    var ran = Math.floor(Math.random()*length) + 1;
    $(this).find (':nth-child' '+ ran + ')").show();


})(jQuery);

構文エラーが発生する場所は、次の場所です。

$(this).find (':nth-child' '+ ran + ')").show();
4

2 に答える 2

2

回線にいくつかのタイプミスがあり$(this).find()ます。正しいバージョンは次のとおりです。

(function ( $ ) {
    $.fn.randomtip = function () {
    var length = $(this).length;
    var ran = Math.floor(Math.random() * length) + 1;
    $(this).find (':nth-child('+ ran + ')').show();
})(jQuery);
于 2012-06-07T15:11:52.160 に答える
0

構文に問題があります

$(this).find (':nth-child' '+ ran + ')").show();

多分あなたはこれが欲しいですか?

$(this).find (':nth-child(' + ran + ')').show();
于 2012-06-07T15:09:58.133 に答える