2011-12-24 75 views

回答

7

this不是jQuery对象,它是实际的DOM元素。要将其转换为jQuery对象,请使用$(this)。所以:

$(this).addClass('selected'); 

中的jsfiddle另一个问题是,你没有选择<a>元素,你选择<h2>。最后,链接正在被遵循。 Here's all that fixed.


别的东西,你可能会考虑是element.innerText没有从我所看到的(即它只能在IE中工作)非常优秀的浏览器的支持。只是一个小点。

+0

由于内文,但字体颜色实际上没有改变的方式,你能告诉我为什么吗? – 2011-12-24 21:29:56

+0

@max_:这次是CSS问题 - *特性*之一。您的链接的CSS规则更具体,因此它们覆盖了非特定规则'.selected'。你可以通过[添加!重要]来解决它(http://jsfiddle.net/v32qy/7/)。然而,这在IE6中不起作用,所以要么使'.selected'更具体,要么使其他规则更具体。 – Ryan 2011-12-24 21:32:05

+1

您可以使用'.text()'获得更好的浏览器支持:http://jsfiddle.net/v32qy/8/ – mc10 2011-12-24 23:49:14

0

除了更正语法之外,还希望将类应用于锚点。

$('#textContainer h2 a').click(function() { 
    var title = this.innerText; 
    $(this).addClass('selected'); 
}); 
0

要访问您必须使用$(this),而不是当前的元素只是this

这里是更新的小提琴。 http://jsfiddle.net/v32qy/6/

我也改变了你正在使用jQuery text()功能