我有一个调查类型的表单,该表单是从客户端上的Web数据库填充的。我可以很好地填充问题,但是然后尝试尝试在存在现有答案(编辑方案)的地方触发click事件,发现新元素尚未在DOM中,因此这是行不通的。这是代码:
$(function() {
var db = openDatabase(...);
db.transaction(function(tx) {
tx.executeSql("select ....", [surveyId], function(tx, results) {
var items = "", answers = [];
for (var i = 0; i < results.rows.length; i++) {
var id = results.rows.item(i).id;
items += "<div><input type='radio' name='q-" + id + "' id='q-" + id + "-1' /><label for='q-"+id+"-1'>Yes</label><input type='radio' name='q-" + id + "' id='q-" + id + "-2' /><label for='q-"+id+"-2'>No</label></div>";
if (result.rows.item(i).answer) {
answers.push('#q-'+id+'-'+results.rows.item(i).answer);
}
}
$('#questions-div').append(items);
$.each(answers, function(i, e) { $(e).click(); });
});
});
});
有什么技巧可以使我更好地完成这项工作吗?
最佳答案
我在这里:
answers.push('#q-'+id+'-'+result);
您的意思是推:
answers.push('#q-'+id+'-'+result.rows.item[i].answer);
否则,您会以
'#q-XX-[object Object]'
作为选择器,我认为您是在1
的2
或'#q-XX-1'
版本之后。