带有原型的第N个子选择器

我正在尝试使用Prototype中的“nth-child(n)”,就像我使用jQuery一样。 代码示例如下……

function myFunction() { $$('div.amfinder-horizontal td:nth-child(1) select').simulate('click'); $$('div.amfinder-horizontal td:nth-child(1) select').simulate('change'); } Event.observe(window,"load",myFunction); 

不幸的是,这似乎没有选择元素(因为点击和更改不起作用)。 当我把select的类放在那里时,它确实有用……但是我不能使用这个类,需要通过nth-child来完成它。 我相信:第一个和最后一个工作,但我总共有6个我需要这样做…即使这样,它也不会总是全部6个。

如果有人可以提供一个nth-child的例子以及它如何与Prototype一起工作,那就太好了!

 

$$()是返回元素数组的CSS选择器方法

 $$('div.amfinder-horizontal td:nth-child(1) select').simulate('click'); 

将无法工作,因为您无法在arrays上运行模拟

只要你加载了Event.simulate,这应该可以工作

 $$('div.amfinder-horizontal td:nth-child(1) select').invoke('simulate','click'); 

你用过2次。

可能是造成问题的原因。

更改

 $$('div.amfinder-horizontal td:nth-child(1) select').simulate('click'); $$('div.amfinder-horizontal td:nth-child(1) select').simulate('change'); 

 $('div.amfinder-horizontal td:nth-child(1) select').simulate('click'); $('div.amfinder-horizontal td:nth-child(1) select').simulate('change'); 

您可以按数组样式选择它们

http://jsbin.com/eDAWaji/1/edit

HTML:

 
  1. lista
  2. lista
  3. lista
  4. lista
  5. lista

JS:

 var li = $$('body > ol.myclass li'); li[3].style.background = 'red';