2011-09-30 62 views
1

我在Firefox v6.0.2和IE7中運行此代碼。在Firefox中,我選擇單選按鈕。然後點擊測試。我得到一個字符串長度爲。在IE7中,我得到的字符串長度爲。請解釋跨瀏覽器的這種差異string.length

<script type="text/javascript"> 
    function TestMethod() { 

     var name; 
     var address; 
     var city; 
     var state; 
     var zip; 

     var indexor = 0; 
     $('input[name=radioBtnSet1]:checked').parent().siblings().each(function (i, cell) { 
      if (indexor === 0) 
       name = $(cell).text(); 
      else if (indexor === 1) 
       address = $(cell).text(); 
      else if (indexor === 2) 
       city = $(cell).text(); 
      else if (indexor === 3) 
       state = $(cell).text(); 
      else if (indexor === 4) 
       zip = $(cell).text(); 

      indexor++; 
     }); 

     alert(name.length); 
     alert('FACILITY NAME: ' + '|' + name + '|'); 
    } 
</script> 

<input id="runTest" onclick="javascript:TestMethod();" type="button" value="Test"/> 

<table id="someTable"> 
<thead> 
    <tr> 
     <th></th> 
     <th>Header</th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th>Date</th> 
    </tr> 
</thead> 
<tbody> 
<tr> 
    <td><input type="radio" value=" HHH VALUE" name="radioBtnSet1" /></td> 
    <td style="text-align: left;"> HHH VALUE</td><td class="DisplayNone">200 SOME STREET DR</td> 
    <td class="DisplayNone">CITY</td><td class="DisplayNone">TX</td> 
    <td class="DisplayNone">75007-3726</td> 
    <td style="padding-left: 1em;">9/30/2011</td> 
</tr> 
</tbody> 
<tfoot> 
    <tr> 
     <th></th> 
     <th></th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th class="DisplayNone"></th> 
     <th></th> 
    </tr> 
</tfoot> 
</table> 

爲什麼?我怎樣才能讓它們相當?

+0

你需要空格前綴「HHH」嗎? –

+2

在人們可以有用地幫助你之前,你必須先解決這個問題,這個問題的代碼中有很多不相干的東西。 –

+0

是的,間距是必須的。如果需要,可以稍後減少。在路上 –

回答

4

由於可以在this頁面的評論中看到,問題出在jQuery的text函數中。在IE 7中,它不保留前導空白和尾隨空白。在FF中,它的確如此。因此,IE 7和FF中不同的字符串和不同的長度。

如果您需要空格,請嘗試使用&nbsp;