2016-09-23 3 views
0

特定のクラスまたはクラスを持たないクラスまたは2つのクラスを持たないテキストを取得しようとしています。ここで 複数のクラスをチェック

は私のhtmlコードである - 私は空のクラスを有するものリンクタグ() li「を有する t-completed」クラスとそのテキストを取得したいと、今

<div id="events"> 
    <ul class="checkout-bar"> 
     <li class=""><span><a href="#">Order</a></span></li> 
     <li class=""><span><a href="#">Booking</a></span></li> 
     <li class="t-completed"><span><a href="#">Receiving</a></span></li> 
     <li class="t-completed"><span><a href="#">Loading</a></span></li> 
     <li class="t-completed active"><span><a href="#">Arrival</a></span></li> 
     <li class="inactive"><span><a href="#">Arrival</a></span></li> 
     <li class="inactive"><span><a href="#">Availability</a></span></li> 
     <li class="inactive"><span><a href="#">Delivery</a></span></li> 
    </ul> 
</div> 

れていない「t-completed」と'active' クラスすなわち<li class="t-completed active">

jQueryを使って試してみてください -

if($('#events .checkout-bar li').length>0){ 
    $('#events .checkout-bar li').each(function(){ 
     var t = $(this); 
     if (!t.hasClass() || (t.hasClass("ms-completed") && !t.hasClass("active"))){ 

     //if($(this).is('.ms-completed:not(.active)') || $(this).attr('class')==""){ 
      var oldtxt = $(t).find('span a').text(); 
      if(oldtxt == 'Order'){ 
       t.find('span a').text("Ordered"); 
      }else if(oldtxt == 'Booking'){ 
       t.find('span a').text("Booked"); 
      }else if(oldtxt == 'Receiving'){ 
       t.find('span a').text("Received"); 
      }else if(oldtxt == 'Loading'){ 
       t.find('span a').text("Loaded"); 
      }else if(oldtxt == 'Arrival'){ 
       t.find('span a').text("Arrived"); 
      }else if(oldtxt == 'Availability'){ 
       t.find('span a').text("Available"); 
      }else if(oldtxt == 'Delivery'){ 
       t.find('span a').text("Delivered"); 
      }else if(oldtxt == 'In transit'){ 
       t.find('span a').text("Transited"); 
      }else{ 
       t.find('span a').text(oldtxt); 
      } 
     } 
    }); 
} 

<a>のタグテキストを<li>の空白の("")クラスに置き換え、"ms-completed"クラスのみを置き換えます。現在、<li>は「MS-完了アクティブ」クラスを有するもの<a>タグテキストを置き換える

提案を

答えて

2

をあなたがここにhasClass()を試すことができます。?

var t = $(this); 
if (t.attr("class") === '' || (t.hasClass("t-completed") && !t.hasClass("active"))) {....} 

UPDATE:あなたならば、私は知りませんあなたの実際のコードでは、この行を持っている:

var oldtxt = $(t).find('span a').text(); 

が、tはまだ$(this)に等しいです。 $()に再度ラップしないでください。

また、これはoldtxtのために十分なものでなければならない(あなたに基づいて、HTML上で示した):

var oldtxt = t.text(); 
関連する問題