目前,当您在“Special”标识的 4 个文本框中添加一些值时,它会以串联字符串的形式输出。我如何将其分解成一个表格,以便我可以很好地将其打印在表格中。
$add.click(function() {
var elem = document.createElement("div");
var dmenu = document.getElementById("days");
var dmenuvalue = dmenu.options[dmenu.selectedIndex].text;
var regex = /^\d+(?:\.\d{0,2})$/;
if (dmenuvalue != "temp" && $name.val().indexOf("%") == -1 && ($origprice.val().indexOf("%") == -1 && regex.test($origprice.val())) && ($specprice.val().indexOf("%") == -1 && regex.test($specprice.val()))) {
var name = dmenuvalue + "%" + $name.val() + "%" + $origprice.val() + "%" + $specprice.val();
$(elem).text(name);
var dailyDeal = [
dmenuvalue,
$name.val(),
$origprice.val(),
$specprice.val()
];
dailyDeals.push(dailyDeal);
for (i = 0; i < 4; i++) {
$('<input type="hidden">').attr({
'name': 'name[' + ctr + '][' + i + ']',
'value': dailyDeal[i]
}).appendTo(elem);
}
$('<a>').attr({
'href': '#'
}).text("X").click(function() {
$(elem).remove();
//ctr--;
return false;
}).appendTo(elem);
$list.append(elem);
ctr++;
document.getElementById("dailydeals").innerHTML = '';
return false;
} else {
document.getElementById("dailydeals").innerHTML = '*Please complete all required fields above.';
return false;
}
});
最佳答案
JSFiddle 上的完整解决方案:
http://jsfiddle.net/protron/xGhnv/9/
基本上我所做的是:
在 HTML 中,我替换了
<div>
叫list
对于新的<table>
:<table id="tableDailyDeals"></table>
在Javascript中而不是调用
$(elem).text(...
我在刚刚定义的表中创建一个新表行 (<tr>
):var $tr = $('<tr>').appendTo('#tableDailyDeals');
然后除了添加
input-hidden
对于每个 dailyDeal 属性(0 到 3),我还创建一个表格单元格 (<td>
),并在其中创建一个新的<span>
数组中已有名为dailyDeal
的文本(跨度是可选的,但由于我也将输入隐藏在同一个 td 中,我认为这种方式更好):var $td = $('<td>').appendTo($tr); $('<span>').text(dailyDeal[i]).appendTo($td);
然后只需为行删除器链接添加另一个表格单元格 (
<td>
):var $tdRemoveRow = $('<td>').appendTo($tr);
剩下的只是一些 CSS 样式和小细节。
关于javascript - 通过javascript将数组打印到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867117/