0

jQueryでこれをli.notsuchelem行い、存在しない場合

$('li.notsuchelem').closest('div')

それは正常に動作します

しかし、プロトタイプで同じことをすると、エラーが発生します

$$('li.notsuchelem').up('div')

>TypeError: $$('li.notsuchelem').up is not a function

これから美しいコードを作成するにはどうすればよいですか:

if ($$('li.notsuchelem').length) $$('li.notsuchelem').up('div');

>>>>

var tmp;
if ((tmp = $$('li.notsuchelem')).length) tmp.up('div');

>>>>

$$('li.notsuchelem').each(function(el){el.up('div')});

jQueryのやり方とは反対に、私にはすべてが醜く見えます。私にできることはありますか、それとも対処しなければなりませんか?


まあ、私は答えを受け入れると思いますが、コーディングが間違っているか、プロトタイプが好きではありません

jQuery:

$('.ss_new:not(.force_visible)', wrapper).closest('tr').hide();

プロトタイプ:

wrapper.select('.ss_new:not(.force_visible)').invoke('up','tr').invoke('hide');
4

2 に答える 2

2

プロトタイプjsではこのようになると思います。

$$(".test").invoke("up", "div");
于 2012-08-24T15:19:14.747 に答える
1

長さの代わりに、返された配列を数値に変換できます。&&さらに、論理 AND ( ) 演算子の副作用を使用できます。

+$$('li.notsuchelem') && $$('li.notsuchelem').up('div');
于 2012-08-24T15:15:51.163 に答える