我希望改变某些div的类(隐藏)依赖于它们的属性值。
这是我的代码,一旦你看到它,它可能会更有意义:
jQuery('#menu1').click(function() {
jQuery([.attr('imageref')]!=[.attr('menuref')]).removeClass('pics').addClass('.pics-hidden').removeClass('pics').fadeOut(200);
jQuery('#projectimages').masonry('reload');
});
所以,我所追求的是,如果您点击#menu1
,它将删除与.pics
属性imageref
具有相同#menu1
属性的menuref
#menu1
点击menuref
等于.pics
的{{1}},会隐藏相关的imageref
{{1}}也等于1.希望这样做感觉,任何帮助将不胜感激!
答案 0 :(得分:2)
您可以使用css选择器进行此操作。
即:
jQuery('#menu1').click(function()
{
jQuery('[imgeref="menuref"]').removeClass('pics').addClass('pics-hidden');
});
编辑:
这将搜索他的属性'imageref'设置为'menuref'的所有元素,然后删除类图片并添加类图片隐藏。 如果它只是img标签的必要条件。然后你可以改变:
jQuery('[imgeref="menuref"]')
到
jQuery('img[imgeref="menuref"]')
答案 1 :(得分:1)
您可以使用jQuery过滤器功能。
描述:将匹配元素集减少到与选择器匹配的元素集或通过函数测试。
var menuref = ("#menu1").attr('menuref')
// Get all pics with an imageref attribute
jQuery(".pics[imageref]")
// Filter them
.filter(function(){
return $(this).attr('imageref') != menuref;
})
// Do what ever you want e.g. remove the pics class
.removeClass('pics')
答案 2 :(得分:0)
您使用attribute-equals selector,并将menuref
属性的值连接到选择器。
jQuery('#menu1').click(function() {
var menu = $(this).attr('menuref');
jQuery(".pics[imageref='" + menu + "']").toggleClass('pics pics-hidden')
.fadeOut(200);
jQuery('#projectimages').masonry('reload');
});