JQuery和getelementbyid失败,不是时间问题
JQuery and getelementbyid fail, NOT a timing issue
因为我没有发布JS示例,所以不得不删除我以前的帖子。我现在已经修复了:
我有一个ajax调用,它返回一个新的注释(在页面加载很久之后,这样我就知道目标元素正确地位于DOM中),并将它附加到我的列表中(使用jquery的append例程在"wli_5_comments.comments"下)。问题是由于某种原因,我无法访问"wli_5_comments"元素。Jquery认为它不存在,getelementbyid也失败了。
例如,如果我使用document.getelementbyid(someid).ninnerHTML,它会告诉我"无法获得未定义的html"或其他什么。警告that或jquery中的任何属性都会导致相同的结果:未定义。。。不存在,尽管我可以在我的文档检查器中看到它。id是相同的,引号很好,所有的标签都正确地关闭了。WTH?
<div id="wli_5_commments" class="wli_comments_area hide" style="display: block;">
<h2 class="hdr">Comments</h2>
<div class="comments">
<div id="wlc_21" class="wli_comment" userid="9">
<div class="msg">adfsgfhgsf</div>
<div class="name_area">
<div class="name"><div>someuser</div>
<div class="date">(2014-04-12)</div>
</div>
</div>
<div class="buttons"><img class="delete_button" src="http://localhost:80/graphics/red_x_off.png" pop="Delete this comment"></div>
</div>
</div>
</div>
这是我的测试代码,它在每一步都失败(除了第一个警报,它会导致预期的"wli_5_comments"):
alert('wli_'+wli_key+'_comments');
alert(document.getElementById('wli_'+wli_key+'_comments').innerHTML);
alert('#wli_'+wli_key+'_comments'+$('#wli_'+wli_key+'_comments').attr('id'));
console.log($('#wli_'+wli_key+'_comments').find('.comments').html());
$('#wli_'+wli_key+'_comments .comments').append(msg['result']);
还要注意,JS不仅在"document.ready"块中调用,而且在AJAX回调中调用,该回调仅在用户交互后触发。这与调用一个还不存在的元素无关(就像StackOverflow认为我的问题是重复的所有其他答案一样)。
Bah。我通过将控制台显示的ID复制到我的警报代码中,最终解决了这个问题。当我这样做的时候,我注意到"commments"answers"comments"不是同一个词(其中多了一个"m")。
谢谢大家:)
相关文章:
- 如何使用警报进行调试来解决(未定义的)时间问题
- 淘汰计算与订阅、时间问题
- 日期列中的剑道网格格式时间问题
- Javascript 调试 - addEventListeners - 点击事件陷入时间问题
- Javascript时间问题
- Flot图表x轴时间问题..啊
- JS树加载时间问题
- Knockoutjs订阅事件,ko.computed执行时间问题
- Javascript客户端&asp.net事件处理程序的时间问题-如何解决
- Angular RSS阅读器项目的时间问题
- HTML5 Audio API播放的时间问题
- Highcharts xaxis日期时间问题
- javascript highcharts中的日期/时间问题
- 设置新的时间问题在Chrome
- 通过