我将一些表格中的值传递给函数,以便为数据库插入做好准备。 该功能理论上运行正常。然而,它错过了一个让我在遇到麻烦的独特价值。 我正在尝试根据提交给数据库的数据生成唯一ID。 我想生成这样的ID:
var mystringId = prodID +'{'+ selectId +'}'+ selectedOptionValue;
应输出例如: 20 {100} 3 {200} 6 。 在我的示例中,它生成以下内容:
20 {100} 3
20 {200} 6
因为each();
$("#submitme").live('click', function() {
//var mystringId = prodID;
$('select').each(function() {
var addedOn = new Date();
var selectName= $(this).attr("name");
var selectId= $(this).attr("id");
var selectedOption = $(this).find('option:selected');
var selectedOptionValue = selectedOption.val();
var selectedOptionText = selectedOption.text();
var mystringId = prodID+'{'+selectId+'}'+selectedOptionValue;
db.transaction(function(tx) {
tx.executeSql('INSERT INTO xxxxx mystringId');
});
});
$.mobile.changePage( "#cart", { transition: "slideup"} );
});
答案 0 :(得分:2)
从我可以从您的问题中收集到的内容,您只需在当前代码之前执行每个循环,以便在您希望在代码中使用的格式生成mystringId
。
<强>代码强>
$("#submitme").live('click', function() {
var mystringId = prodID;
$('select').each(function() {
var selectId= $(this).attr("id");
var selectedOption = $(this).find('option:selected');
var selectedOptionValue = selectedOption.val();
mystringId += '{' + selectId + '}' + selectedOptionValue;
});
$('select').each(function() {
var addedOn = new Date();
var selectName= $(this).attr("name");
var selectId= $(this).attr("id");
var selectedOption = $(this).find('option:selected');
var selectedOptionValue = selectedOption.val();
var selectedOptionText = selectedOption.text();
db.transaction(function(tx) {
tx.executeSql('INSERT INTO xxxxx mystringId');
});
});
$.mobile.changePage( "#cart", { transition: "slideup"} );
});
<强>结果
结果将是mystringId,从prodID mystringId = 20
循环的第一次迭代会追加{100}3
,导致mystringId = 20{100}3
循环的第二次迭代会追加{200}6
,导致mystringId = 20{100}3{100}6