使用jQuery更改css样式(在容器内)

时间:2012-06-19 15:22:44

标签: javascript jquery html css

这是jsFiddle:http://jsfiddle.net/JFwDw/2/

我想要做的是使用链接更改段落的字体大小和行高,仅在分区ID“内容”内。我已经做了另一个部门,以确保它在其他任何地方都没有改变......在玩了一段时间之后无法让它工作。

提前致谢。

3 个答案:

答案 0 :(得分:3)

您想要更改您正在使用的选择器。您只需要p

下的标记,而不是对所有#content标记执行操作
$("#content p, #content ul").css()

DEMO

您的链接还会链接到<a href=""...,导致页面重新加载。我将其更改为href="#",因此不会发生这种情况。你也可以prevent the default event在函数内部发生。

function origText() {
    event.preventDefault()
    ...

另一方面,我无法弄清楚为什么函数在小提琴的JS部分不起作用......

答案 1 :(得分:1)

嗯,首先,您的链接正在激活并重新加载页面。

通常,当您编写jQuery时,您将使用选择器附加事件,而不是使用内联代码。这让你将JavaScript和HTML保存在单独的文件中,并允许jQuery在需要时删除事件。

<a href="#" id="bigText">big text</a>

$('#bigText').click( function(event) {
   // code here
} );

然后为了防止默认操作(在链接之后),可以使用jQuery方法,防止默认操作。

$('#bigText').click( function(event) {
   event.preventDefaultAction();
   // code here
} );

您还可以使用文档就绪事件来包装事件绑定代码,以确保在尝试将事件附加到DOM之前加载DOM。

$(document).ready( function() {
   $('#bigText').click( function(event) {
      event.preventDefaultAction();
      // code here
   } );
} );

此外,您通常希望添加一个类来更改元素的样式,而不是使用jQuery来更改样式。它的性能更高。此外,如果您只想影响容器中的元素,可以使用jQuery“find”方法来执行此操作。

$('#someContainer').find('p').addClass('someClass');

答案 2 :(得分:1)

http://jsfiddle.net/JFwDw/34/

这对我有用。

编辑:我认为这就是您要实现的目标!