原型$奇怪的行为

fre*_*ght 2 javascript prototypejs

当我尝试使用原型的$函数通过id获取元素时,我得到了一个null对象,并得到了这个奇怪的行为:

document.observe('dom:loaded', function() {
  $$('.answer').each(function(answer) {
    console.log('answer.id: ' + answer.id);
    console.log('$(answer.id): ' + $(answer.id)); # works, so the element does exists
    console.log("$('answer_73'): " + $('answer_73')); # this doesn't, why?..
    console.log(' ');
  }); 
});
Run Code Online (Sandbox Code Playgroud)

div是这样的:

<div id="answer_73" class="answer"> ...
Run Code Online (Sandbox Code Playgroud)

而且没有标记错误

日志:

....
answer.id:answer_73
$(answer.id):[object HTMLDivElement]
$('answer_73'):null
....

更新

对不起,最后我发现没有出错......它只是一个类型:

<div class="answer" id="answer_<%= answer.id %> " 
Run Code Online (Sandbox Code Playgroud)

这是导致这种"奇怪"行为的尾随空白.也许原型lib在返回对象的id时剥离了trailig id,因此在第一种情况下没有发生错误.

Pek*_*ica 5

我敢打赌你喝啤酒,你的文件中有两个带有id的元素answer_73.