2009-12-23 51 views
1
$('fieldset.one label, fieldset.two label').each(function() { 
    var className = $(this).text().trim().toLowerCase(); 
    $(this).addClass('default ' + className); 
}); 

我将类动态添加到标签元素,但是当我尝试对它们进行样式设置时,没有任何效果。其中一人有.sedan类自动添加,我看到它的萤火,但下面没有任何效果:CSS对动态类没有任何影响

.sedan { 
    display:none !important; 
} 

HTML:

<fieldset class="one"> 
    <label>sedan</label> 
    <label>suv</label> 
    <label>truck</label> 
</fieldset> 

<fieldset class="two"> 
    <label>sedan</label> 
    <label>suv</label> 
    <label>truck</label> 
</fieldset> 
+1

请包括HTML作为目标。 – Sampson 2009-12-23 16:14:26

+0

只是,谢谢。 – 3zzy 2009-12-23 16:17:50

+0

这不是'

'。如何显示实际的HTML? – 2009-12-23 16:21:04

回答

1

使用jQuery的trim方法:

var className = $.trim($(this).text()).toLowerCase(); 
+0

不知道为什么这是低调的,原来的代码只能在实际实现Javascript 1.8.1'String.trim()'方法的最新版本的Firefox中使用。 – 2009-12-23 16:39:47

+0

啊,什么是downvoted(由某人)实际上是解决方案! :) – 3zzy 2009-12-23 16:42:39

+0

Nimbuz,你的代码没有这个工作。 – Sampson 2009-12-23 16:44:16

0

没有什么错的代码,你”已张贴在这里。我只是在本地测试它,它工作得很好。确保你的选择器是正确的 - 你可以检查是否添加了萤火虫风格。

+1

“default”后面有空格,jQuery在空格上分开。 OP的代码应该为每个元素添加两个不同的类。 – outis 2009-12-23 16:25:07

+0

OP的代码*确实*添加了两个类(给出了这里发布的内容)。 – Sampson 2009-12-23 16:31:54