jQuery元数据选择器

时间:2014-08-30 23:18:14

标签: javascript jquery metadata

嗨我有很多像这样的div

<div class="card {toggle:'A'}">
<div class="card {toggle:'B'}">
<div class="card {toggle:'C'}">
<div class="card {toggle:'D'}">

现在我想隐藏例如。 B DIV。我试图

$(.class [toggle:A]).hide(); 

或其他一些组合,但nothig正在运作。你能提出任何解决方案吗?我使用&#34;元数据 - jQuery插件,用于解析元素中的元数据&#34;。

非常感谢

1 个答案:

答案 0 :(得分:1)

修改

我没有意识到你在使用元数据插件。你应该可以做类似

的事情
$("div.card").forEach(function(element) {
    if (element.metadata().toggle === 'B') {
        element.hide();
    }
});

编辑2

The metadata plugin was deprecated in 2011

  

&#34;元数据插件将被弃用,有利于类似   jQuery 1.4.3及更高版本提供的功能。&#34;

使用jQuery自己的.data()代替。

ORIGINAL

这似乎是你在上游做错了什么。为什么要在class属性中存储数据?要考虑的一个选择是使用jquery's .data()来存储内容。我强烈建议你看一下这样的事情。

但是,如果你想盲目前进,我可以提供帮助。 CSS支持属性选择器。在这种情况下,您可以使用[rel$=foo]表单来匹配类属性的结尾:

$('div[class$="B\'}"]')

请注意所涉及的凌乱转义字符。

更好的解决方案可能是使用[rel*=foo]表单来匹配属性中的任何位置:

$('div[class*="toggle:\'B\'"]')

我在这里举了一个例子: http://jsfiddle.net/pabo/pxg0v8uq/

您可以在此处阅读有关属性选择器的简单指南:http://css-tricks.com/attribute-selectors/