私はこれを解決する方法を見つけられないようです..だから私はいくつかの助けが必要になると思います..私はsqliteデータベースを持っているphonegapアプリケーションを作っています。私はクエリを実行し、動的に結果を取得しますデータベースからdivを作成しました。これは、抽出したレコードごとに、編集可能な役割を持つボタンとして、それを含むdivを作成するためのものです。
たとえば、これらの列IDがoption1 option2のdbがあり、3つのレコードがあるとします。これは、必要な3つのdivがあり、各divがボタンになるため、ユーザーがクリックすると、次のことができるようになります。たとえば、idを気にせずに削除(または編集/更新)クエリを実行します。彼がdiv2を選択した場合は、2番目のレコードを削除するクエリを実行します。
これまでの私のコード..
for (var i = 0; i < len; i++) {
var test1 = results.rows.item(i).option1;
var d = new Date();
d.setTime(results.rows.item(i).date);
var newLI = document.createElement("LI");
newLI.className = lt;
newLI.id = results.rows.item(i).id;
var container = ("<div id=\"" + results.rows.item(i).id + "\" class=\"test\"><div id=\"text\">option1</div><div id=\"data\">" + test1 + "</div></div>");
newLI.innerHTML = cont;
var gl = document.getElementById("sqltest");
gl.appendChild(newLI);
}
for (var i = 0; i < len; i++) {
var divid = "#" + results.rows.item(i).id;
$(divid).on("click", function () {
alert(divid);
})
}
<ul id="sqltest"></ul>
上記のコードの問題は、各divが正しいIDを取得しているにもかかわらず、それをクリックすると、3つのdivがある場合でも、インスタンス#1に対して常に同じ結果が得られることです。
div1 alert #1 div2 alert #2
私は得る
div1 alert #1 div2 alert#1
私はそれを単純化するためだけにアラートを使用しましたが、アラートの代わりにDELETE from SQLDB WHERE id=results.rows.item(i).id;