如何通过RJS代理访问阵列?

时间:2010-07-19 18:51:58

标签: javascript ruby-on-rails rjs

在Rails的RJS适配器中,

page['id'] // $('id')

访问CSS-id,

page['id'].property // $('id').property

它的一个属性。但是如何访问数组索引,例如

page.select('ul').value_at(2) // $('id').select('ul')[2]

如果没有写作,有没有办法做到这一点:

page << "$('id').select('ul')[2]"

1 个答案:

答案 0 :(得分:2)

您无法从rjs访问这样的数组,但其中任何一个都可以工作:

page['id']['firstChild']['nextSibling']
page['id'].down(2)

生成:

$("id").firstChild.nextSibling;
$("id").down(2);

当然,最好的解决方案是在第二个元素中添加一些识别css类或元素id,然后从你的rjs文件中选择。

如果你想坚持使用page.select,你可以像这样实现value_at(在这里称为pick):

>>> Array.prototype.pick = function(n) { return this[n]; };
function()
>>> ['a', 'b', 'c'].pick(1)
"b"