33

さて、通常、私は自分自身を jquery の中級ユーザーと見なしますが、これはコーディング方法がよくわからない非常に初心者の問題のようです。

関数を実行したい div が 1 つあります。これを行う方法を私が知っている唯一の方法は、次のようなものです...

$("#divname").each(function(){
  dostuff();
});

要素が 1 つしかないことがわかっている場合、これはもう少し手間がかかるように思えます。私はこれを試しました...

$("#divname", function(){ 
  console.log($(this));
});

...しかし、dom全体を書き出します。この1つの要素で関数を実行したいだけです。それ、どうやったら出来るの?

4

2 に答える 2

28

要素をオブジェクトとして渡して、関数を呼び出す必要があります。

function doStuff() {
    alert( $(this).html() );
}

doStuff.call( $("#foo")[0] );

を構築して呼び出す方法によりdoStuff、 のコールバックとして引き続き使用できます.each

$(".bar").each( doStuff );

フィドル: http://jsfiddle.net/jonathansampson/WuyJc/

于 2012-06-07T14:55:33.043 に答える
21

HTML DOM の各要素が一意であることを維持する場合id、つまり 2 つの要素が同じidではないことを意味する場合、$('#divname')常に単一の要素を返し、$('#divname').each()1 回実行されます。1 つ以下です。

今あなたの場合、あなたは次のようなものが欲しい

dosomething( $('#divname') );

例えば:

function doSomething( el ) {
   el.append('<span>hello</span>');
}

 doSomething( $('#divname') );

デモ

于 2012-06-07T14:52:55.830 に答える