0

jquery プラグインを作成し、それをページ内のいくつかの HTML 要素に使用したいと考えています。これは私のHTMLコードです:

<select class="test">
    <option>
        111
    </option>
    <option>
        222
    </option>
    <option>
        333
    </option>
</select>
<select class="test">
    <option>
        444
    </option>
    <option>
        555
    </option>
</select>

select要素にプラグインを使用したい。これは私のプラグインのサンプルです:

(function ( $ ) {
        $.fn.testplug = function() {
            var res = "";
            this.children("option").each(function(){
                res+=$(this).text()+"#";
            });
            alert(res);
        };
    }( jQuery ));

そしてそれを使用するために:

$(".test").testplug();

今、私は 2 つresの値を持っていると考えています。そのうちの 1 つは で、111#222#333#もう 1 つは である必要がありますが444#555#、1 つの結果があり、それは111#222#333#444#555#です。希望する結果を得るにはどうすればよいですか? jsfiddle へのリンク

4

2 に答える 2

1

両方を選択しているため、どちらを使用するかを指定する必要があります

$('.test:first').testplug() //111#222#333

$('.test:last').testplug() //444#555#

また

$('select').on('change',function(){
    $(this).testplug();
});

または、このようにすべての .test をループできます

$('.test').each(function(){
$(this).testplug();
});

次のようにコードを書き直すこともできます。リストをループし、次に子をループし、すべてのリストの最後に警告します

 (function ( $ ) {
        $.fn.testplug = function() {
            this.each(function(){
                  var res = "";
                $(this).children('option').each(function(){
                          res+=$(this).text()+"#";
                });
                 alert(res);
            });
        };
    }( jQuery ));

デモ

于 2013-10-01T08:38:08.637 に答える