<li>
由 set_input()函数保留,使用 getJSON()获取数据后。
但即使绑定功能也无效。
任何人都可以帮助我!
$(document).ready(function()
{
$.getJSON("sample1.php?",
function(data){
$.each(data, function(i,j){
testA[j.id]=j.name;
});
set_input("div_1","continent",testA);
});
$("#"+div_D+" ul li").bind("click",function(){
$("#"+div_D+" input[type='text']").val($(this).text());
})
});
function set_input(div_D,name_N,Array_A){
$("#"+div_D).html("<input id="+name_N+">");
var str="<ul>";
$.each(Array_A,function(m,n){
str +="<li>"+n+"</li>"
})
$("#"+div_D+" input[type="text"]").after(str);
}
This is JSON array:
[ {'id':'0','name':'Africa'},{'id':'1','name':'Americas'},{'id':'2','name':'Asia'},{'id':'3','name':'Europe'},{'id':'4','name':'Oceania'} ]
答案 0 :(得分:2)
您正在尝试绑定到DOM中尚不存在的项目。
移动
$("#"+div_+" ul li").bind("click",function(){
$("#"+div_+" input[type="text"]").val($(this).text());
})
到set-input函数的最后一行。即
function set-input(div_,name_,Array_){
$("#"+div_).html("<input id="+name_+">");
var str="<ul>";
$.each(Array_,function(m,n){
str +="<li>"+n+"</li>"
})
$("#"+div_+" input[type="text"]").after(str);
$("#"+div_+" ul li").bind("click",function(){
$("#"+div_+" input[type="text"]").val($(this).text());
})
}
P.S。你有很多错别字。
答案 1 :(得分:0)
我看到几个错误:
" input[type="text"]"
应为" input[type='text']"
$("ul")
(也许,不完全确定你想要的是什么)如果您针对
发布了运行此HTML的HTML,那将会有所帮助另外作为编写干净的jQuery代码的经验法则,我尝试几乎从不在$()中使用连接,几乎总是有更好的方法。