2014-01-30 18 views
0

你好,我有這個結構,許多行:jQuery的文本()返回不需要的字符

<div class="row"> 
     <div class="input-group col-lg-1" > 
      <span class="input-group-addon"> 
       <input type="checkbox"> 
      </span> 
      <span id="value"> 
       @Html.DisplayFor(modelitem => item.DeviceInstanceId) 
      </span> 
     </div> 
     * 
     * 
     * 
</div> 

其中@Html.DisplayFor(modelitem => item.DeviceInstanceId)是一個數字。

我得到與選中的複選框連接的跨度的值。 有了這個代碼:

$(document).ready(function() { 
    $("#reservations").click(function() { 
     var Ids = new Array(); 
     $(".table input:checked").each(function() { 
      Ids.push(($(this).parentsUntil("row").children("#value").text())); 

     }) 
     console.log(Ids); 
    }); 

}); 

而IDS是這樣的:

["↵     38↵    ", "↵     40↵    ", "↵     41↵    "] 

我應該如何提高我的JS代碼擺脫那些進入和空格?

+0

查找功能(「#值」),而不是兒童(「#值」) –

+1

@NavinRauniyar:爲什麼? –

+0

查找和孩子沒有區別。仍然不想要的字符 – szpic

回答

3

您可以:

  • Trim the value

    Ids.push($.trim($(this).parentsUntil("row").children("#value").text())); 
    

    其除去開頭和結尾的空白字符,或

  • 寫你的HTML,以便它不包含換行符和空格:

    <span id="value">@Html.DisplayFor(modelitem => item.DeviceInstanceId)</span> 
    
0
.children('#value') 

會看不起

.find('#value') 

只有一層看起來不止一個層次了。

你的情況ID爲「價值」的跨度

實際上是兩個水平降至caompared類「行」

+1

這是有道理的,但如果這是問題,OP會得到一個空字符串返回,而不是'「38」'等。 –

+0

這兩個孩子和在我的情況下找到返回相同的東西 – szpic

+0

爲什麼你不創建小提琴。 – aneeshere

相關問題