jQuery:记录数组中的元素变化,并通过索引检查它是如何变化的
jQuery: Record element changes in Array and check how it was by its index
每次点击都是一步,会在.test
中添加一个子div,我将所有元素更改保留在数组step
我希望它看起来像这样:
Array step [0] = before click,
Array step [0,01] = after one click,
Array step [0,01,012] = aftert two click
但它的工作原理是这样的:
Array step [0] = before click,
Array step [0,11] = after one click,
Array step [0,11,222] = aftert two click
小提琴示例
.HTML:
<div class="test"></div>
<button type="button" onclick="change()">Count Child Element</button>
<div id="result"></div>
JavaScript:
var step =[]; // step is a record of changes in #test.
step.push($('.test')) //step[0] is status of .test at very beginning.
$('#result').append(step[0][0].childElementCount+"<br>") // #result showing how many child element in #test
var change = function (){
$('.test').append('<div>t</div>') //every click will a append <div> in #test
step.push($('.test')) // record this move in step[]
console.log('step length',step.length) // total moves
for ( var i = 0; i < step.length; i++ ) {
$('#result').append(step[i][0].childElementCount)
}
$('#result').append("<br>")}
非常感谢您提前提供的帮助。
你的循环迭代(i
)应该基于childElementCount
而不是step
数组长度。
我更改了您的代码以使用 step[step.length-1]
获取数组中的最后一个元素,并将 for 循环更改为在遇到最后一个childElementCount
时停止。我还显式调用change()
,让它为您创建和呈现第一个元素,以避免重复代码。
固定小提琴:http://fiddle.jshell.net/8sbq0y0k/
固定代码:
var step = []; // step is a record of changes in #test.
function change() {
$('#test').append('<div>t</div>') //every click will a append <div> in #test
step.push($('#test')) // record this move in step[]
console.log('step length', step.length) // total moves
for (var i = 0; i < step[step.length-1][0].childElementCount; i++) {
$('#result').append(i.toString())
}
$('#result').append("<br/>")
}
change(); // let change do the work for you
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>
<button type="button" class="btn btn-warning pull-right" onclick="change()">Count Child Element</button>
<div id="result"></div>
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 如何使用量角器检查类名的变化
- JS触发的复选框's已检查属性;t动态变化
- Javascript 不会检查文本输入值是否随组合网格而变化
- 在谷歌地图中检查位置变化
- jQuery:记录数组中的元素变化,并通过索引检查它是如何变化的
- 检查多个变量的值变化
- 检查窗口大小是否有变化和性能/优化
- 如何动态检查Jquery变量是否发生了变化
- 如何检查主干中几个属性的变化
- jQuery检查输入值是否随变化而增加/减少
- DOMSubtreeModified -检查是否只有容器中的第一项发生了变化
- Ionic 2范围滑块导致";表达式值在检查后发生变化";错误
- angularjs 2 rc4变化检测:检查后表达发生变化
- 如何创建 Chrome 扩展程序来检测在线产品列表,并定期检查价格变化
- 如何在每次不触发命令的情况下检查css的变化
- 当文本字段发生变化时,检查表单的有效性,就像gmail注册表单一样
- 有没有一种方法可以在表单发生变化时检查它?