2014-11-03 110 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