我有一个标识为billing:postcode
的输入元素。 Prototype $()选择器无法按this ticket。
我在jQuery中找到了同样问题的this解决方案。我不能让它在Prototype中工作。我试过了:
var element = document.getElementById('billing:postcode');
Element.extend(element);
element.invoke(...);
和
var element = document.getElementById('billing:postcode');
$(element).invoke(...);
两者都不起作用:Uncaught TypeError: Object #<HTMLInputElement> has no method 'invoke'
我知道我可以使用CSS选择器获取元素:
$$('#billing\\:postcode')
但我想使用getElementById
答案 0 :(得分:3)
您的Element.extend(element);
有效,但最常见的方法是将其传递给$()
:
var extended = $(document.getElementById('billing:postcode'));
但请注意,单个元素没有Prototype invoke
方法,这是您遇到的真正问题。 :-) invoke
是Enumerable
的一部分,它仅适用于元素列表,而不是单个元素列表 - 其目的是在列表中的每个元素上调用给定函数。而不是调用invoke
,只需调用您尝试直接调用的函数。