2013-10-29 56 views
0

我試圖捕獲我的頁面上的文本框對的值。使用jQuery循環從文本框獲取數據

我正在捕獲它們,但它並不完全按照我希望的方式工作,因爲我得到重複數據。

這裏是我的HTML代碼:

<div id="links"> 
     <div id="group1"> 
      <input type="text" name="linkTitle" value="Google"> 
      <input type="text" name="linkURL" value="www.google.com"> 
     </div> 

     <div id="group2"> 
      <input type="text" name="linkTitle" value="Yahoo"> 
      <input type="text" name="linkURL" value="www.Yahoo.com"> 
     </div> 

    </div> 

    <div> 
     <input id="btnSaveLinks" type="button" value="Save"> 
    </div> 

這裏是JavaScript:

$("#btnSaveLinks").on('click', function() { 
     $('#links input[type=text]').each(function() { 
      var title = $(this).attr("value"); 
      var url = $(this).attr("value"); 
      console.log('title: ' + title); 
      console.log('url: ' + url); 
     }); 
    }); 

標題:谷歌

網址:谷歌

標題:www.google.com

網址:www.google.com

標題:雅虎

網址:雅虎

標題:www.yahoo.com

網址:www.yahoo.com

回答

6

你是獲取重複的數據,因爲您正在遍歷每個輸入,然後在兩個變量中存儲相同的值:

var title = $(this).attr("value"); 
var url = $(this).attr("value"); // same thing 

您的變量titleurl包含相同的內容。

你可以遍歷您的div,然後讓它們內部的輸入:

$('#links div').each(function() { 
     var title = $(this).find('[name=linkTitle]').val(); 
     var url = $(this).find('[name=linkURL]').val(); 
     console.log('title: ' + title); 
     console.log('url: ' + url); 
}); 

小提琴:http://jsfiddle.net/zXTEC/

1

因爲你這一行$(this).attr("value");寫入值兩次,每次文本框它複製再次查看你的代碼,你會發現你使用這個相同的行來獲取這個值並將它分配給兩個不同的變量......

相關問題