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 方式相反,一切对我来说都是丑陋的。有什么我可以做的还是我必须处理它?


好吧,我想我会接受答案,但要么我编码错误,要么我只是不喜欢 Prototype

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

我认为它在prototypejs中是这样的。

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

您可以将返回的数组强制转换为数字,而不是长度。&&此外,您可以使用逻辑 AND ( ) 运算符的副作用。

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