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
和下一步