Javascript 使用Prototype获取Click事件上next()元素的innerHTML

Javascript 使用Prototype获取Click事件上next()元素的innerHTML,javascript,dom,prototypejs,Javascript,Dom,Prototypejs,我正在尝试获取下一个元素的innerHTML,在该元素旁边发生了单击 到目前为止,我把它作为我的代码 $('translate_this').observe('click', function(e) { // Immediately stop the click through Event.stop(e); x = this.next().innerHTML; alert(x); }); 但是,实际上什么也没有发生,这表明变量根本没有填充

我正在尝试获取下一个元素的
innerHTML
,在该元素旁边发生了单击

到目前为止,我把它作为我的代码

$('translate_this').observe('click', function(e) {  
    // Immediately stop the click through  
    Event.stop(e);  
    x = this.next().innerHTML;  
    alert(x);    
});
但是,实际上什么也没有发生,这表明变量根本没有填充任何内容。这是为什么

供参考的HTML

<li class="say public">
 <p>  
     <span style="padding: 2px 7px; background-color: rgb(230, 230, 230); -moz-border-radius-topleft: 6px; -moz-border-radius-topright: 6px; -moz-border-radius-bottomright: 6px; -moz-border-radius-bottomleft: 6px;">  
      <a id="translate_this" href="">Translate</a>
  </span>
 </p>
 <div class="post_non_translated">
  <p>Bonjour </p>
 </div>
</li>
  • 你好


  • 您的问题是您的案例中没有下一个元素。您必须向上遍历
  • ,然后向下遍历
    ,才能获得“你好”

    试试这个:

    var x = this.up('li').down('.post_non_translated').innerHTML;
    

    这将为您带来晚安,您可以进一步细化它,如果您想去掉p,问题是在您的示例中,translate\u this元素没有任何兄弟元素。它是span元素的唯一子元素。

    next()
    以节点树的方式查找下一个节点;不仅仅是从上到下
    translate\u此
    是跨度的唯一子级,因此它没有同级,并且
    next
    将返回null。您必须
    parent
    返回
    p
    下一步