我有一个元素应用了一些CSS规则如下:使用jQuery获取特定CSS类
<span class="rule1 rule2 rule3[foo/bar]"></span>
我可以使用jQuery使用检索类的完整名单:
var classes = $("span").attr('css');
如何我是否选择了一个特定的规则,在这种情况下,rule3与它的数组内容完成?
我有一个元素应用了一些CSS规则如下:使用jQuery获取特定CSS类
<span class="rule1 rule2 rule3[foo/bar]"></span>
我可以使用jQuery使用检索类的完整名单:
var classes = $("span").attr('css');
如何我是否选择了一个特定的规则,在这种情况下,rule3与它的数组内容完成?
你可以做通过查询与jQuery节点像
var myspan = $('span');
您现在可以通过调用
myspan.data('rules').rule3 // === "baz"
参考访问这些数据属性。 。
var arr = $('span').attr('class').split(" ");
然后按照你的意愿重复它们。arr[i]
但我同意Peeter的观点。使用jQuery的'.data()'将是一个更有效的做法。 – 2011-04-04 09:44:07
我会考虑使用html5数据属性来代替。
你不应该使用css类来存储信息。 jQuery提供了将各种数据存储到特性中的功能,这些特性又被拉入jQuerys .data()expando propertys。
在你的榜样,这可能看起来像
<span data-rules='{"rule1":"foo","rule2":"bar","rule3":"baz"}'></span>
这是你的逻辑的JSON字符串化版本。 http://api.jquery.com/data/(节:HTML 5数据 - 属性)
试试这个;
$('span[class~="rule1"]')
你也可以试试这个;
$('span.rule1')
带有数组内容的类名?这种符号对我来说是新的。你从哪里得到?你是什么意思的“选择” - 你想确定一个特定的链接是否有这个类? – 2011-04-04 09:36:32
按照grab3的规则进行选择,因此可以在脚本中使用方括号的内容。我已经继承了类规则,现在把它们全部改为使用jQuery data()代替为时已晚。 – bcmcfc 2011-04-04 09:58:30