1


テキストのリストがあり、それらの 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>

-ありがとう。

使用されている 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();">
4

2 に答える 2

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();">
于 2012-12-27T11:51:16.140 に答える
1

jQuery を使用したいという前提条件 - それほどフェッチされていない - を考えると、それらを選択して「each」で繰り返すことができます。

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

jQuery を使用していない場合は、風変わりな dom を処理するのに役立つ js ライブラリを使用することは、おそらく悪い考えではありません...

一般的な考え方

  1. ノードを選択
  2. html の繰り返しと変更

常に同じです。

于 2012-12-27T11:51:11.387 に答える