Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery ajax在返回的HTML中找不到元素_Jquery - Fatal编程技术网

JQuery ajax在返回的HTML中找不到元素

JQuery ajax在返回的HTML中找不到元素,jquery,Jquery,我有一个简单的问题 $.ajax({ url: someUrl, method: 'get', dataType: 'html', success: function(data) { $('#someId').append($(data)); } }); 问题是我无法在返回的数据中简单地找到元素。如果有id=myInput的输入,我无法使用$'myInput'或$'input[id=myInput]'获取它。我可以通过以下方式找到它:

我有一个简单的问题

$.ajax({
 url: someUrl, 
 method: 'get',
 dataType: 'html',
 success: function(data) { 
            $('#someId').append($(data));
          } 
 });
问题是我无法在返回的数据中简单地找到元素。如果有id=myInput的输入,我无法使用$'myInput'或$'input[id=myInput]'获取它。我可以通过以下方式找到它:

$('input').each(function(i,e){ if($(e).attr('id') == 'myInput'){ doStuff(e); } });
但谁每次都想这么做呢?我看到了,但提供的解决方案对我不起作用。除了上面的东西,我也试过了

$('#someId').html(data);
$(data).appendTo($('#someId'));

我使用的是jQuery1.4.2。想法、建议?

我能想到的唯一原因是,您的HTML语法在某个地方格式不正确。尝试在myInput元素前后取出代码块,并一直这样做,直到它按预期运行。然后慢慢地把片段放回去,直到您能够准确地确定问题所在。

我认为您要做的是访问DOM中尚未连接到DOM的元素。在$someElement.htmldata或将其附加到某个位置之前,它只是一个数据返回对象,而不是DOM的一部分

还考虑使用GETJSON获取数据,因为JSON将其编码为远端的JSON,将其放在PHP中的数组中,并执行ECHON JSONEL编码$数组;


然后,您可以通过每个项的数组名(如data.name)来访问它,并将其分配给DOM的各个部分。

如果确实需要这样做,请不确定为什么要使用。在返回的数据中查找

所以在你的成功中

success: function(data) {
  $(data).find("#inputId").doSomething();
  $('#someId').append(data);
} 
FatherStorm可能是对的,如果您正在执行附加操作,然后仅使用$inputId搜索整个dome,那么它可能还不存在于DOM中。

以下是我的函数:

$.ajax({
        type: 'POST',
        url: direccion_url,
        dataType: 'html',
        success: function(datos){
                $('#panel_salida').html(datos);
                $('#panel_salida').find('#apelli1_txt').val('valor');
        }
});

我希望它对您有所帮助。

看起来您有多个具有相同id的元素?是否尝试在文本框中显示数据?然后使用$'inputId'.valtextToDisplay;对于跨距,使用“spanId”。文本;您是否尝试将async:false参数添加到ajax查询中?为什么这样做:$'someId'。追加$data;,而不是:$'someId'。appenddata;$'someId数据具有相同的效果。success函数比我在示例中展示的更复杂,它试图处理返回和附加的内容,但找不到元素,因为它们的ID包含valuereportId之类的内容。我的两个选项似乎要么是因为$'value\\reportId\\'起作用而退出参数,要么是更改ID。我和后者一起去。我没有编写生成html的东西,否则它会变成json。好主意。我不是编写HTML的人,也没有意识到id是无效的。出于某种原因,id包含括号,在这种情况下JQuery似乎不愿意按id查找。因此,当我使用只包含一两个div的HTML进行一些测试运行时,在我在id中添加paren之前,一切都很好。谢谢你的建议。