如何访问<li>?</li>的一堆

时间:2012-12-27 11:48:41

标签: javascript


我有一个文本列表,我想改变他们的innerHTML。如果我有数千个li标签(其数据来自数据库),我怎么能通过javascript做到这一点?

<div>
<ul>
<li>a</li>
<li>as</li>
<li>asd</li>
<li>asds</li>
<li>asdsa</li>
<li>asdsad</li>
<li>asdsadz</li>
<li>asdsadzc</li>
....
.....
</ul>
</div>

-Thanks。

更新 正在使用的JS代码:

function a(){
    var parent = document.getElementById("z");
    var i = 0;
    for(i = 0; i <= parent.children.length; i++){
        if(parent.children[i].tagName == "LI"){
            if(i%2!=0){
                parent.children[i].innerHTML="ok";
            }
        }
    }
}
document.onload=a(); // this didn't work. so I called the function in body tag instead of that.
<body onload="a();">

2 个答案:

答案 0 :(得分:4)

您是否尝试过使用getElementsByTagName?像这样的喜欢它会帮助你找到你想要使用的元素。

修改

如果您可以为包含您正在尝试处理的li的UL元素提供ID,则可以执行以下操作:

var parent = document.getElementById("yourID");
var i = 0;
for(i = 0; i < parent.children.length; i++){ 
  if(parent.children[i].tagName == "LI") { 
     //do what you want...
   }
}

编辑2

您必须更改脚本的最后一行:

document.onload=a();

这一个:window.onload=a;

这将使你的函数在onLoad事件上执行。请注意,可能存在一些交叉浏览器不兼容的问题,我建议稍微研究如何在交叉浏览器方式上对onload事件执行函数,或者只是将其添加到body标签:

<body onload="a();">

答案 1 :(得分:1)

考虑到 - 目前还没有提到 - 你希望使用jQuery的前提条件,你可以选择它们并用“each”迭代它们。

$("li").each( 
function() { $(this).html("changed content"); }
);

如果您不使用jQuery,使用js-library可以帮助您解决这个问题,那可能不是一个坏主意......

总体思路

  1. 选择节点
  2. 迭代并更改html
  3. 总是一样的。