2017-04-18 185 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

相關問題