我有一个简单的
$.ajax({
url: someUrl,
method: 'get',
dataType: 'html',
success: function(data) {
$('#someId').append($(data));
}
});
问题是我无法在返回的数据中找到元素。如果有一个id =“myInput”的输入,我无法用$('#myInput')或$('input [id = myInput]')来获取它。我 CAN 找到它:
$('input').each(function(i,e){ if($(e).attr('id') == 'myInput'){ doStuff(e); } });
但是谁每次都想这样做?我看到this question,但提供的解决方案对我不起作用。除了我在那里尝试了什么
$('#someId').html(data);
$(data).appendTo($('#someId'));
我正在使用jQuery 1.4.2。想法,建议?
答案 0 :(得分:3)
我认为您要做的是访问DOM中尚未附加到DOM的元素。在您$(someElement).html(data)
或将其附加到某处之前,它只是一个数据返回对象,而不是DOM的一部分。
另外,考虑使用getJSON将数据作为JSON返回(通过将其放入PHP中的数组并执行echo json_encode($array);
来将其编码为远程端的JSON
然后你可以通过它的数组名称访问每个项目,作为data.NAME并将其分配给你的DOM部分。
答案 1 :(得分:2)
我能想到的唯一原因是你的HTML语法在某处出现了格式错误。尝试在myInput元素之前和之后取出代码块,并继续这样做,直到它按预期运行。然后慢慢地将碎片放回去,直到你能确切地确定问题所在。
答案 2 :(得分:0)
如果你真的需要这样做(不确定原因),那么在返回的数据上使用.find
所以你的成功功能就像
success: function(data) {
$(data).find("#inputId").doSomething();
$('#someId').append(data);
}
FatherStorm可能是正确的,如果你正在做追加,然后只是使用$("#inputId")
搜索整个圆顶,它可能只是在DOM中不存在。
答案 3 :(得分:0)
这是我的功能:
$.ajax({
type: 'POST',
url: direccion_url,
dataType: 'html',
success: function(datos){
$('#panel_salida').html(datos);
$('#panel_salida').find('#apelli1_txt').val('valor');
}
});
我希望它可以帮到你。