首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AJAX调用后无法使用DOM元素

在AJAX调用后无法使用DOM元素
EN

Stack Overflow用户
提问于 2011-02-24 14:21:01
回答 3查看 855关注 0票数 1

我有一个很大的AJAX响应,其中插入了大量的HTML。在此之后,我将不能使用任何新创建的I或类,就好像它们在加载表单时存在一样。

我研究了.live(),它可以解决我的一个问题,但不能解决另一个问题。

我基本上是想通过ID或类显示一个DIV,当单击一个链接时通过AJAX .html()插入它。

示例:

代码:

代码语言:javascript
复制
html_out = "<div class='span-1'><a href='#' onClick='show_sub_row(\"#sub_row" + id + "\"); return false;'>[ + ]</a></div>";
html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="#sub_row' + id + '">';
html_out += 'Content';
html_out += '</div>';
$('#search_results').html(html_out);

然后,在创建HTML之后,我尝试:

代码语言:javascript
复制
function show_sub_row(sub_row) { 
$(sub_row).show('fast');
}

我知道它引用了正确的ID,因为我可以执行警报(Sub_row),并且它显示了与使用FireBug检查隐藏的DIV相匹配的正确ID。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-24 14:24:54

除非sub_row是您在这里表示的代码之外的某个初始化变量,否则代码块应该是:

代码语言:javascript
复制
function show_sub_row(sub_row) { 
$('#sub_row').show('fast');
}

此外,您的sub_row的实际HTML包含一个#字符,这可能会使定位真正的问题变得更加困难。我会将其修改为:

html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="sub_row' + id + '">';

票数 3
EN

Stack Overflow用户

发布于 2011-02-24 14:26:55

在sub_row之前使用#

代码语言:javascript
复制
function show_sub_row(sub_row) { 
$('#sub_row').show('fast');
}
票数 1
EN

Stack Overflow用户

发布于 2011-02-24 14:29:37

忽略我是个笨蛋,刚才我注意到我的ID引用中包含了#标记,这就是它不起作用的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5101124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档