2013-07-10 28 views
1

我也在this fiddle下面的代碼。每個類的計數長度

HTML

<span class="myName">John Smith</span> 
    <span class="myName">John Smith</span> 
    <span class="myName">John Smith</span> 
    <span class="myName">John Smith</span> 
    <span class="myName">John Smith</span> 
    <span class="myName">John Smith</span> 

的JavaScript

$('.myName').each(function(){ 
     var text = $(this).html().split(' '), 
      len = text.length, 
      test = $(this).val().length, 
      result = []; 
     console.log('outside: ' + test); 
     for(var i = 0; i < len; i++) { 
      result[i] = '<span class="name-'+[i]+'" >' + text[i] + '</span>'; 
      console.log('inside: ' + test); 
     } 
     $(this).html(result.join(' ')); 
     console.log('after: ' + test); 
    }); 

它增加了一個跨度在MYNAME DIV每一個字。 我想要計算每個div中的文字記錄器,以便如果它是一個長名稱,我可以將名字縮減爲J Smith。

但是,如果你看看控制檯日誌,我試圖在三個不同的地方計算長度,它總是回到0? 我在做什麼錯?

+4

'.VAL()'功能僅適用於輸入(你就會知道,如果你閱讀手冊HTTP://api.jquery .com/val /) – zerkms

+0

「我試圖在三個不同的地方計算長度」 - 您已經計算了一次,然後輸出相同的結果3次。 – zerkms

回答

3

zerkms是對的。要改變這一點:

test = $(this).val().length, 

這樣:

test = $(this).text().length,