2011-04-04 35 views
1

我有一个元素应用了一些CSS规则如下:使用jQuery获取特定CSS类

<span class="rule1 rule2 rule3[foo/bar]"></span> 

我可以使用jQuery使用检索类的完整名单:

var classes = $("span").attr('css'); 

如何我是否选择了一个特定的规则,在这种情况下,rule3与它的数组内容完成?

+2

带有数组内容的类名?这种符号对我来说是新的。你从哪里得到?你是什​​么意思的“选择” - 你想确定一个特定的链接是否有这个类? – 2011-04-04 09:36:32

+0

按照grab3的规则进行选择,因此可以在脚本中使用方括号的内容。我已经继承了类规则,现在把它们全部改为使用jQuery data()代替为时已晚。 – bcmcfc 2011-04-04 09:58:30

回答

2

你可以做通过查询与jQuery节点像

var myspan = $('span'); 

您现在可以通过调用

myspan.data('rules').rule3 // === "baz" 

参考访问这些数据属性。 。

var arr = $('span').attr('class').split(" "); 

然后按照你的意愿重复它们。arr[i]

+0

但我同意Peeter的观点。使用jQuery的'.data()'将是一个更有效的做法。 – 2011-04-04 09:44:07

3

你不应该使用css类来存储信息。 jQuery提供了将各种数据存储到特性中的功能,这些特性又被拉入jQuerys .data()expando propertys。

在你的榜样,这可能看起来像

<span data-rules='{"rule1":"foo","rule2":"bar","rule3":"baz"}'></span> 

这是你的逻辑的JSON字符串化版本。 http://api.jquery.com/data/(节:HTML 5数据 - 属性)

0

试试这个;

$('span[class~="rule1"]') 

你也可以试试这个;

$('span.rule1')