我试图找到一个带有example
选择器的div元素,该代码也有代码中所示的active
选择器。
使用Prototype JS this
返回windows.object
而不是单独的div本身。
如何让this
引用每个div元素以便我可以使用它?
$$('.example').each(function() {
if(this.hasClassName('active')) {
this.previous().setStyle({border:'1px solid #999'})
}
});
答案 0 :(得分:4)
http://api.prototypejs.org/language/Enumerable/prototype/each/
要访问该元素,您不需要更改迭代器函数的上下文(this
)。迭代器函数接收项作为第一个参数。你只需要命名参数。
$$('.example').each(function(div) {
if(div.hasClassName('active')) {
div.previous().setStyle({border:'1px solid #999'})
}
});
此外,您可以通过更新传递到$$
的
$$('.example.active').each(function(activeDiv) {
activeDiv.previous().setStyle({border:'1px solid #999'})
});
如果您有兴趣控制函数内this
的值,请查看call
,apply
和bind
。