javascript - 动态创建的元素存储在哪里以及如何访问它们?查询

标签 javascript jquery dom

我从来没有真正理解动态创建元素的行为背后发生了什么。这是一个例子:

$('.some-list').append('<div class="node"></div>');

现在存储在哪里? 如何访问 div 元素 $('.node')?

我知道 jQuery 的事件“on”方法,但我如何简单地访问和操作该元素?谢谢。

最佳答案

无论 $('.some-list') 本身是否存在于文档中,您都可以简单地使用:

$('.some-list')
  // append returns the original collection ("$('.some-ist')"),
  // not the newly-added element(s)
  .append('<div class="node"></div>')
  // so here we can use "find('.node')" to find the newly added
  // element(s):
  .find('.node')

如果 $('.some-list') 已经存在于文档中:

$('.some-list').append('<div class="node">The newly-added Element</div>').find('.node').css('color', '#f90');
.some-list div {
  color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="some-list">
  <div>Existing node</div>
</div>

如果 $('.node') 元素出现在文档中:

var someList = $('<div />', {
    'class': 'some-list',
    'html': '<div>Existing element</div>'
  }),
  newNode = someList.append('<div class="node">The newly-added Element</div>').find('.node');

console.log(newNode);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

引用资料:

关于javascript - 动态创建的元素存储在哪里以及如何访问它们?查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684912/

相关文章:

javascript - requirejs:从网络服务加载脚本/模块

javascript - 具有方法和自身返回的对象

javascript - 为什么我的 php 脚本没有从 mysql 数据库获取城市

jquery - 通过缓慢滑动到侧面动画隐藏单击时的 div

jquery - 固定一个元素,直到里面的所有东西都被滚动

jquery - Perl:如何包含使用 ajax/json 传递的 DBIx::Class 查询信息的标量引用

javascript - 如何在 javascript 上创建一个简单的重力引擎

Javascript 比另一个属性上的 XSLT generate-id() 更好地识别回调节点

javascript - 如何从 DOM 错误事件中获取详细消息

java - 获取具有相同父级的 HTML 节点 - JAVA