[英]post data from table row like json format
這與我的最后一個問題有關(注意:我已經在那里得到了一些很好的答案)。 我正在做一個過濾程序。 我沒有包括這個問題,因為我認為只要我知道如何從行中獲取數據,我就更容易添加文本。 但令我沮喪的是,直到現在我都無法編寫出好的程序。
我目前正在使用這個 javascript 代碼(感謝 Awea):
$('#out').click(function(){
$('table tr').each(function(){
var td = '';
$(this).find('option:selected').each(function(){
td = td + ' ' + $(this).text();
});
td = td + ' ' + $(this).find('input').val();
alert(td);
});
})
我的問題是:如何在行中的數據之前添加文本? 例如,此代碼警告第一行,例如data1.1 data1.2 data1.3
,
然后第二行像data2.1 data2.2 data2.3
,
我希望我的 output 像這樣顯示
[ {"name":"data1.1","comparison":"data1.2", "value":"data1.3"}, {"name":"data2.1","comparison":"data2.2", "value":"data2.3"}, {"name":"data3.1","comparison":"data3.2", "value":"data3.3"} {.....and so on......}]
但在此之前,我想檢查一行中的所有第一個單元格是否不為空。 如果它為空,請跳過該行然后繼續下一行。
有沒有人可以幫助我,請...
基於我對您上一個問題的回答,請參閱http://jsfiddle.net/evbUa/1/
一旦您將數據存儲在 javascript object(在我的示例中為dataArray
),您可以按照我的示例自己編寫 JSON,但您會發現使用JSON-js之類的庫也更容易)。
// object to hold your data
function dataRow(value1,value2,value3) {
this.name = value1;
this.comparison = value2;
this.value = value3;
}
$('#out').click(function(){
// create array to hold your data
var dataArray = new Array();
// iterate through rows of table
for(var i = 1; i <= $("table tr").length; i++){
// check if first field is used
if($("table tr:nth-child(" + i + ") select[class='field']").val().length > 0) {
// create object and push to array
dataArray.push(
new dataRow(
$("table tr:nth-child(" + i + ") select[class='field']").val(),
$("table tr:nth-child(" + i + ") select[class='comp']").val(),
$("table tr:nth-child(" + i + ") input").val())
);
}
}
// consider using a JSON library to do this for you
for(var i = 0; i < dataArray.length; i++){
var output = "";
output = output + '{"name":"data' + (i + 1) + '.' + dataArray[i].name + '",';
output = output + '"comparison":"data' + (i + 1) + '.' + dataArray[i].comparison + '",';
output = output + '"value":"data' + (i + 1) + '.' + dataArray[i].value + '"}';
alert(output);
}
})
您需要在這里做兩件事。 首先將數據放入對象數組中,其次獲取字符串表示形式。
我沒有對此進行測試,但它應該讓您對如何做有一個基本的了解。
編輯請看一下我制作的這個 JS-Fiddle 示例。 http://jsfiddle.net/4Nr9m/52/
$(document).ready(function() {
var objects = new Array();
$('table tr').each(function(key, value) {
if($(this).find('td:first').not(':empty')) {
//loop over the cells
obj = {};
$(this).find('td').each(function(key, value) {
var label = $(this).parents('table').find('th')[key].innerHTML;
obj[label] = value.innerHTML;
});
objects.push(obj);
}
});
//get JSON.
var json = objects.toSource();
$('#result').append(json);
});
var a = []; a[0] = "data1.1 data1.2 data1.3" a[1] = "data1.6 data1.2 data1.3" var jsonobj = {}; var c = [] for (var i = 0;i
警報(c); //它將給出 ["{"name":"data1.1","comp...1.2","value":"data1.3"}", "{"name":"data1.6", "comp...1.2","value":"data1.3"}"]
你必須包含來自 JSON.stringify 的function的庫。
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.