我有一个调查类型的表单,该表单是从客户端上的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]'作为选择器,我认为您是在12'#q-XX-1'版本之后。

10-02 20:18