- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 firefox 中出现了一个奇怪的问题(没有测试 ie 等,但仍然需要它在 firefox 中工作)。我正在使用 ajax 使用包含从数据库返回的信息的 div 填充父 div。服务器端是带有 while 循环的 PHP,该循环遍历结果集并回显每个 div。
整个脚本工作正常并用不同数量的子节点填充父 div(#ID of parent div ='webses'),我遇到的问题是当我在获取新集后检查最后一个子节点时通过 ajax 的 div 的 lastChild 被报告为先前填充的 lastChild。
一个例子是:
'#webses' 有 4 个子节点 (divs),最后一个子节点的 ID 为“no4”,然后我在#webses 下重新填充整个子节点集,添加一个 ID 为“no5”的新 div,然后查询 ID重新填充 div 的函数末尾的最后一个子节点“立即”返回,lastChild 作为“no4”返回。然后我可以运行相同的查询(一旦函数完成)来检查 #webses 上的 lastChild(通过浏览器地址栏),然后正确返回 no5!
这里是一个展示问题的代码示例(使用警报显示 lastChild 上的 ID 值):
function populateWebses() {
//populates parentNode DIV 'webses' with divs populated via AJAX
populateParentNodeViaAJAX();
alert(document.getElementById("webses").lastChild.id);
}
查看 lastChild 的查询是在“#webses”下的 DOM 使用新的子节点更新后立即执行的,我想这就是问题所在,但为什么呢?
非常感谢任何帮助。
丹
最佳答案
AJAX 表示异步 Javascript。执行警报时 populateParentNodeViaAJAX() 方法尚未完成,因此它返回“旧”值。
如果您需要执行某种依赖于 Ajax 方法已完成这一事实的操作,则需要使用回调机制(仅在 Ajax 调用完成后才调用函数 X)。
关于javascript - 动态 DOM 元素未被拾取为 lastChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121641/
对于这么长的问题,我深表歉意,但我已经尝试了很多方法并做了一些研究,但还没有找到很多解决方案。我有一个内容可编辑的 div。 当用户在这个 div 中输入内容时,showResult javas
仅当 class =“dp_add_section”时才尝试删除元素的最后一个子元素,否则,我不想删除最后一个子元素。 如何在 jQuery 中执行此操作?这是我到目前为止得到的,但它只删除了下一个元
我有以下代码: 我的 JavaScript 代码是: $(document).ready(function(){
当我在现有段落前后的文本字段中添加文本时,删除按钮功能完美。但是,如果我在添加元素之前单击删除按钮,您必须单击两次才能删除不是由函数创建的段落。 这里可能有什么问题?我在添加和删除时在 Firebug
我有以下一段 Javascript: //Clear out container var container = document.getElementById("buy"); while (cont
x=document.getElementByTagName("p"); document.write(x.lastChi
我有一个排列脚本,可以在视觉上上下移动元素(例如 li 和 tr 等元素),但是当元素已经是第一个时,我需要将其制作出来而是出现在底部。我尝试使用正确的元素引用来 appendChild ,但收到错误
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我正在尝试获取给定元素的第一个和最后一个节点。 document.getElementById('test').firstChild document.getElementById('test').l
我在 firefox 中出现了一个奇怪的问题(没有测试 ie 等,但仍然需要它在 firefox 中工作)。我正在使用 ajax 使用包含从数据库返回的信息的 div 填充父 div。服务器端是带有
我当前的代码完美运行: CSS: #center { background:#781111; color:#fff; position:absolute; left:5
我有一个链接列表,我正在使用以下代码在每个链接项后添加一个词: a:after {content: "eg"} 但是,我不希望内容出现在列表中的最后一项之后,所以理想情况下我想说类似的话 a:last
我想知道,为什么在这种情况下“firstChild”和“lastChild”不起作用,但是当我通过数组中 li 的位置执行此操作时,一切正常。 这是我的 HTML: Ite
Face Matching Game Matching Game Click on the EXTRA face on the left side div { position: absolu
对于 chrome、firefox 和 safari,以下代码似乎可以工作并且能够检索表中最后一个 tr 的 ID。 var table = document.getElementById( tabl
Face Matching Game Matching Game Click on the EXTRA face on the left side div { position: absolu
我无法删除这个错误: mypage.php:53 Uncaught TypeError: Cannot read property 'lastChild' of null 这是由这段代码生成的: va
我有这个 xml:
如何删除动态生成的 div 的 lastchild 并将 html 重新生成为字符串。示例 HTML DIV strHtmlString = "Test1 One T
HTML: A B C D E F G CSS: :host/deep/.title-main { display:
我是一名优秀的程序员,十分优秀!