2014-11-03 111 views
-2

我有一個有表格和小表格的頁面。該表有一些關於問卷的數據。我試圖使用jquery來遍歷表格,檢查是否符合條件,然後將其添加到表單的正確字段。我遇到的問題是表單不是由我創建的,所以我不能匹配它們來設置id's。所以我需要從relate得到field_id,並且answer插入那location。我新來jquery和js。這是我想出的。通過html表格循環訪問

HTML

<div align="left"> 
    <table class="table table-striped"> 
     <thead> 
      <td>Question</td> 
      <td>Answer</td> 
      <td>Relates to</td> 
     </thead> 
     <tbody> 

      <tr> 
       <td>Random question 1</td> 
       <td>Random answer 1</td> 
       <td>add to variable form field</td> 
      </tr> 

      <tr> 
       <td>Random question 2</td> 
       <td>Random answer 2</td> 
       <td>add to a different form field</td> 
      </tr> 

     </tbody> 
    </table> 
    </div> 

    <input type="text" id="variable id that could be matched with element of table"> 

main.js

table.find('tr').each(function (i, el) { 
    var $mylists = $('#' + relate)  
    $mylists.html(''); 
    var $tds = $(this).find('td'), 
     label = $tds.eq(0).text(), 
     relate = $tds.eq(1).text(), 
     answer = $tds.eq(2).text(); 
    $('<span></span>').text(answer).appendTo($mylists); 
}); 
+6

請發佈相關的HTML以及請。 – tymeJV 2014-11-03 19:45:53

+0

我的猜測是你想要的東西是這樣的......'$ mylists.html('');''在'var $ tds'之前的頂部,最簡單的方法是將跨度附加回答:'$('' ).text(answer).appendTo($ mylists);'如果$ mylists是一個'input'字段,那麼它是不同的。你需要'val' jQuery函數。 – 2014-11-03 19:49:47

+0

您似乎在聲明它之前使用了變量「related」,因此它將是未定義的。 – Sam 2014-11-03 19:51:29

回答

0

既然你要追加值,在一個單一的輸入,你需要設置輸入val。而且,由於您希望從多個其他值(答案)中創建單一輸入值,因此您需要循環,獲得所有答案,然後將它們合併爲一個值。類似這樣的:

var $mylists = $('#' + relate); 
$mylists.val(''); 
var answers = []; 
table.find('tr').each(function (i, el) { 
    var $tds = $(this).find('td'), 
     label = $tds.eq(0).text(), 
     relate = $tds.eq(1).text(), 
     answer = $tds.eq(2).text(); 
    answers.push(answer); 
}); 

// at this point, answers contains an array of all your individual answer values. 
// decision time: what do you want to do with them? 
// in this example, I join them together in a comma-delimited list. 

$mylists.val(answers.join(', ')); 
+0

對不起,我的例子不好。根據用戶創建的表單,將會有多個輸入。 – 2014-11-03 20:21:10

+0

然後你需要提供一個更好的例子。我提供的答案符合你給出的例子。 – 2014-11-03 20:27:36