私はこのような機能を持っています:
$(document).ready(function () {
listproject() ;
});
listproject()
ドキュメントに追加した順序付けられていないリストの文字列を返す関数です。ここまではすべて問題ありません。HTML ビューに正しいリストがあります。
listproject()
最初の値を表示するためのコード行を追加した直後です<li>
が、結果として未定義です。
$(document).ready(function () {
listproject() ;
alert($('li:first').val());
});
JavaScript コンソールにログインしてウォッチ式を選択すると、jQuery オブジェクト$('li:first')
が存在します。
ここに、あなたのリクエストに続くリストプロジェクトの私の戻り文字列があります
<ul><li id="205">205<ul><li id="206">206<ul><li id="208">208</li><li id="209">209</li><li id="211">211<ul><li id="212">212</li><li id="213">213</li></ul></li></ul></li><li id="207">207<ul><li id="210">210</li></ul></li></ul></li></ul>
この戻り値を html コードの既存の div に追加します。これが listproject() 関数の実行であり、結果は ok です。
編集:
あなたのリクエストの後、ここに私の関数 listproject() があり、その後に makeTree 関数が続き、 listproject() に順序付けられていないリストの文字列を返します:
function listproject() {
$.post("/portail/project/home/getProjectList",
function (d) {
var pl = $("#tree").empty();
if (d.length == 0) {
pl.append($("<div>").addClass("align_center").html("there is no project"));
return;
}
pl.append(makeTree(d,0));
},
"json"
);
}
function makeTree( a,level) {
r = '' ;
for ( i in a ) {
if (a[i]['parentid'] == level ) {
r = r + '<li id='+'"'+a[i]['id']+'"'+'>'+ a[i]['name'] + makeTree(a,a[i]['id'] ) + '</li>';
}
}
if (r==''){r=''; }
else { r= '<ul>' + r + '</ul>' ;}
return r;
}
これで、応答するためのすべての要素が揃い、もう一度考え直します。