0

属性値に応じて、特定のdivのクラス(非表示)を変更しようとしています。
これが私のコードです。これを見たら、もう少し意味があるかもしれません。

jQuery('#menu1').click(function() {
      jQuery([.attr('imageref')]!=[.attr('menuref')]).removeClass('pics').addClass('.pics-hidden').removeClass('pics').fadeOut(200);
      jQuery('#projectimages').masonry('reload');
       });

だから私が求めているのは、クリックすると属性と同じ属性で#menu1削除されるということです。.picsimageref#menu1menuref

したがって、1に等しいものをクリックする#menu1menuref、関連する.picsものimagerefも1に等しく非表示になります。
それが理にかなっていることを願って、どんな助けでも大歓迎です!

4

3 に答える 3

2

これを行うには、cssセレクターを使用できます。

すなわち:

jQuery('#menu1').click(function()
{
  jQuery('[imgeref="menuref"]').removeClass('pics').addClass('pics-hidden');
});

編集:

これにより、彼の属性'imageref'が'menuref'に設定されているすべての要素が検索され、クラスpicsが削除され、クラスpics-hiddenが追加されます。imgタグにのみ必要な場合。次に、変更できます。

jQuery('[imgeref="menuref"]')

jQuery('img[imgeref="menuref"]')
于 2012-10-17T16:33:03.897 に答える
1

jQueryフィルター関数を使用できます。

http://api.jquery.com/filter/

説明:一致した要素のセットを、セレクターに一致する要素に減らすか、関数のテストに合格します。

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')
于 2012-10-17T16:20:07.993 に答える
0

attribute-equalsセレクターを使用し、属性の値をセレクターに連結しmenurefます。

jQuery('#menu1').click(function() {
      var menu = $(this).attr('menuref');
      jQuery(".pics[imageref='" + menu + "']").toggleClass('pics pics-hidden')
                                              .fadeOut(200);
      jQuery('#projectimages').masonry('reload');
});
于 2012-10-17T16:33:14.703 に答える