2017-04-18 167 views
0

我正在写一个使用Java和Spring的Web应用程序。创建一个从列表中选择,并把它放在表

从控制器,I发送到视图一个名为materials

@RequestMapping(value = "/advanced") 
public String advancedCalculation(Model model) { 
    model.addAttribute("materials", materialService.getMaterials()); 
    model.addAttribute("calcForm", new CalculationForm()); 
    return "advanced"; 
} 

materials列表称为MaterialDTO对象的列表:

public class MaterialDTO extends DTO { 

    /* Constructors */ 
    public MaterialDTO()      { super();   } 
    public MaterialDTO(Integer id, String name) { super(id, name); } 

} 

从客户端我不得不做出的表与按钮将行添加到这些表中。喜欢的东西:

<table id="1"> 
    <thead> 
    ... 2 columns ... 
    </thead> 
    <tbody> 
    <tr> 
     <td>HERE I NEED THE SELECTOR</td> 
     <td>column 2</td> 
    </tr> 
    </tbody> 
</table> 
. 
. 
. 
<table id=N> 
    <thead> 
    ... M columns ... 
    </thead> 
    <tbody> 
    <tr> 
     <td>HERE I NEED THE SELECTOR</td> 
     <td>column 2</td> 
     ... 
     <td>column M</td> 
    </tr> 
    </tbody> 
</table> 

这是选择所有表一样的,所以我想从materials列表创建一次,并用它在我需要它。有了这个最后我有问题......

/* Making select */ 

var materialsList = new Array(); 
var sel = $('<select>'); 

<c:forEach items="${materials}" var="material"> 
    var material = new Object(); 
    material.id = '${material.id}'; 
    material.name = '${material.name}'; 
    materialsList.push(material); 
</c:forEach> 

$(materialsList).each(function() { 
    sel.append($('<option>').attr('value', this.id).text(this.name)); 
}); 

,当我尝试将其添加为HTML和失败

function add_to_table_1() { 
    $('#1') 
     .append('<tr><td>' + sel.html() + '</td><td><input type="text" id="e"></input></td><td><input type="text" id="S"></input></td><td><input type="itext" id="r"></input></td><td><button onclick="delete_row(this)">Borrar</button></td></tr>'); 
} 

代替作为选择出现的“的翻译:”是。我怎样才能解决这个问题?

+0

尝试我的东西。 console.log {materials}之前forEach和console.log之后的materialList forEach。在浏览器中打开您的控制台,并验证您的数据是否符合您的预期。 – trevster344

+0

这是我的控制台的[image](http://i67.tinypic.com/mjuvrr.jpg)。当我第一次跑步时给了我一个错误。我评论说,行和一切似乎工作正常。 – nikolat328

+0

然后呢?还是它仍然返回对象对象? – trevster344

回答

0

试试这个:

$(sel).wrap('<div></div>').parent().html(); 

这将解决您选择不与你的选择显示。记住.html()只返回innerHTML。外部html <select></select>不会与它一起显示。你必须先包装。

备选:

$(sel)[0].outerHTML 
+0

你是老板! '$(sel)[0] .outerHTML'完美运行。我认为'innerHTML'是打印标签内部的人。非常感谢你! – nikolat328

+0

不客气。很高兴听到它解决。 – trevster344

相关问题