[英]How to pass(i mean display) the index value of <li></li>(under <ol></ol> default type) to <p></p> if <p></p> is inside of that said <li></li>?
我这里要实现的是将<li></li>(在<ol></ol>默认类型下)的索引值显示到<p></p>(可以是多个,很可能只有一个)在里面。
我的初始代码:
<ol>
<li>
<p>First p element in div.</p>
</li>
<li>
<span>Second p</span>
</li>
<li>
<p>A third p element in div.</p>
</li>
<li>
<p>A fourth p element in div.</p>
</li>
</ol>
脚本:
<script>
var x = document.getElementsByTagName('li');
var y = document.getElementsByTagName('p');
for(var j = 0; j < x.length; j++){
for(var k = 0; k < y.length; k++) {
if(x[j].index == y[k].index){
y[j].innerHTML = j+1;
}
}
}
</script>
OUTPUT:
1.1
2.Second p
3.2
4.3
预期 OUTPUT:
1.1
2.Second p
3.3
4.4
在您的代码中, x[j].index 和 y[k].index 都未定义。 当这种情况发生时,您预计会发生什么?
我建议使用querySelectorAll
而不是getElementsByTagName
- 更准确。 然后不要获取文档中的所有p
元素; 只需获取每个li
中的所有p
元素。 可能是一种更优雅的方法,但嵌套循环方法有效:
var li = document.querySelectorAll('ol li'); for(var i = 0; i < li.length; i++) { var p = li[i].querySelectorAll('p'); for(var j = 0; j < p.length; j++) { p[j].innerHTML = i + 1; } }
<ol> <li> <p>First p element in div.</p> </li> <li> <span>Second p</span> </li> <li> <p>A third p element in div.</p> </li> <li> <p>A fourth p element in div.</p> </li> </ol>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.