嗨我有很多像这样的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;。
非常感谢
答案 0 :(得分:1)
我没有意识到你在使用元数据插件。你应该可以做类似
的事情$("div.card").forEach(function(element) {
if (element.metadata().toggle === 'B') {
element.hide();
}
});
The metadata plugin was deprecated in 2011:
&#34;元数据插件将被弃用,有利于类似 jQuery 1.4.3及更高版本提供的功能。&#34;
使用jQuery自己的.data()代替。
这似乎是你在上游做错了什么。为什么要在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/