0

見出し、テキスト、画像など、さまざまなdivのセットがあるプロジェクトに取り組んでいます。

クリックすると、関連するdiv数の入力ボックスを追加します。

あなたはここで働くフィドルを見ることができます:http://jsfiddle.net/UN62E/

このスクリプトは私のために仕事をしますが、私はこのスクリプトで改善する必要があります。

これは私のスクリプトの一部がどのように見えるかです:

var eltofind = "heading";

if($(this).find("." + eltofind).length != 0){

    var eltoget = $(this).find("." + eltofind);

    $(eltoget).each( function(index) {
         var item = $('input.' + eltofind + ':first').clone();
        var count = (index +1);
        var getting = eltofind + "-" + count;
        item.addClass(getting);
        item.appendTo('#input');
    });
}

現在、divの個々のセットに対してスクリプト全体を繰り返しています。配列内のdivのすべてのセットを呼び出す方法はありますか?例えば ​​:

var eltofind = ["heading", "text", "image"] 

&各関数内でそれらを呼び出しますか?

私のjQueryスキルはそれほど良くありません。助けていただければ幸いです。

4

3 に答える 3

3

jQueryで複数のセレクターを作成できます

$(".heading, .text, .image").foo();
于 2012-06-26T17:21:07.090 に答える
1

配列で引数を$.each()置き換えて実行するだけです。eltofindel

var elstofind = ["heading", "text", "image"];

$.each(elstofind, function(i, el){

    if($(this).find("." + el).length != 0){
        var eltoget = $(this).find("." + el);

        $(eltoget).each(function(index) {
            var item = $('input.' + el + ':first').clone();
            var count = (index + 1);
            var getting = el + "-" + count;
            item.addClass(getting);
            item.appendTo('#input');
        });
    }

});
于 2012-06-26T17:23:50.657 に答える
0

eltofindの各値をループして適切なアクションを実行するループを作成します。

var eltofind = ["heading", "text", "image"];

for(var i=0; i < eltofind.length; i++){
     var thisElement = eltofind[i];

    if($(this).find("." + thisElement).length != 0){

        var eltoget = $(this).find("." + thisElement);

        $(eltoget).each( function(index) {
            var item = $('input.' + thisElement + ':first').clone();
            var count = (index +1);
            var getting = thisElement + "-" + count;
            item.addClass(getting);
            item.appendTo('#input');
        });
    }
}
于 2012-06-26T17:20:18.330 に答える