2016-04-04 14 views
0

を使用して/他の問題であれば、私は、if /他に基づいて、changeMeで、jQueryの同位体を使用してのdivクラスのHTMLテキストを変更しようとしています:jQueryの同位体のindexOf

var $chofval = $(".changeMe").html(filterAttr); 

// search if it contains these strings 
if ($chofval.indexOf("*") >= 0) { 
    $(".changeMe").html("All Apples"); 
} else if ($chofval.indexOf(".green") >= 0) { 
    $(".changeMe").html("Green Apples"); 
} 

しかし、それは*.greenを与えていますボタンをクリックします。私はどこが間違っていると推測していますか?

フルコード:

<script> 
function getHashFilter() { 
    // get filter=filterName 
    var matches = location.hash.match(/filter=([^&]+)/i); 
    var hashFilter = matches && matches[1]; 
    return hashFilter && decodeURIComponent(hashFilter); 
} 

$(function() { 
    var $container = $('.isotope'); 

    // bind filter button click 
    var $filterButtonGroup = $('.filter-button-group'); 
    $filterButtonGroup.on('click', 'button', function() { 
     var filterAttr = $(this).attr('data-filter'); 
     // set filter in hash 
     location.hash = 'filter=' + encodeURIComponent(filterAttr); 

     var $chofval = $(".changeMe").html(filterAttr); 

     // search if it contains these strings 
     if ($chofval.indexOf("*") >= 0) { 
      $(".changeMe").html("All Apples"); 
     } else if ($chofval.indexOf(".green") >= 0) { 
      $(".changeMe").html("Green Apples"); 
     } 
    }); 

    // bind filter on select change 
    $('.filters-select').on('change', function() { 
     // get filter value from option value 
     var filterValue = this.value; 
     // use filterFn if matches value 
     filterValue = filterFns[ filterValue ] || filterValue; 
     $container.isotope({ filter: filterValue }); 
    }); 

    var isIsotopeInit = false; 

    function onHashchange() { 
     var hashFilter = getHashFilter(); 
     if (!hashFilter && isIsotopeInit) { 
      return; 
     } 
     isIsotopeInit = true; 
     // filter isotope 
     $container.isotope({ 
      itemSelector: '.offer-type', 
      layoutMode: 'fitRows', 

      // use filterFns 
      filter: filterFns[ hashFilter ] || hashFilter 
     }); 
     // set selected class on button 
     if (hashFilter) { 
      $filterButtonGroup.find('.is-checked').removeClass('is-checked'); 
      $filterButtonGroup.find('[data-filter="' + hashFilter + '"]').addClass('is-checked'); 
     } 
    } 

    $(window).on('hashchange', onHashchange); 

    // trigger event handler to init Isotope 
    onHashchange(); 
}); 
//@ sourceURL=pen.js 
</script> 

答えて

0
if(filterAttr == "*") {  
    $(".Me").html("All Apples");  
} 
else if(filterAttr == ".green") { 
    $(".changeMe").html("Green Apples"); 
} 
0

この行はfilterAttrの値を持つ「.changeMe」の内容を変更し、「.changeMe」オブジェクトのコンテンツの価値をretunrことができません。

var $chofval = $(".changeMe").html(filterAttr); 

あなたが使用することを評価する「.changeMe」の内容を取得したい場合:

var $chofval = $(".changeMe").html(); 

しかし、あなたは.changeMeがfilterAttrのように定義entitiyの属性の値を取得しようとしている場合使用:

var $chofval = $(".changeMe").attr(filterAttr); 

それとも最終的filterAttrをチェックする真の値であれば、それを評価するための文章で、この値を使用します。

if(filterAttr.indexOf("*") >= 0){ 
    $(".changeMe").html("All Apples"); 
} else if(filterAttr.indexOf(".green") >= 0){ 
    $(".changeMe").html("Green Apples"); 
} 

参照JQuery Attr

関連する問題