1

idsingleFeed1 から singleFeed10 までの名前を持つすべての要素を選択したい。

for (var i=0;i<10;i++){
    var post=document.getElementById('singleFeed'+i);
    post.style.color='blue';

    if (i==4){
        post.style.color='red';
    }
}

うまくいかないようです。

私のhtml

<li id=singleFeed1>aaaaaaaaaaaa</li>
<li id=singleFeed2>vvvvvvvvvvvv</li>
<li id=singleFeed3>dddddddddddd</li>
<li id=singleFeed4>aqqqqqqqqq</li>
<li id=singleFeed5>aaaaaddddaa</li>
......
......
​

誰もがより良い解決策を持っていますか? ありがとう。

4

3 に答える 3

3
for (var i=1;i<=10;i++){
    var post=document.getElementById('singleFeed'+i);
    post.style.color='blue';

    if (i==4){ // you need two equal signs
        post.style.color='red';
    }
}

次回はコンソール(つまりfirebug)をチェックすると、この種のエラーが自分で見つかります。

于 2012-07-05T21:37:39.213 に答える
2
for (var i=1;i<=10;i++){
    var post=document.getElementById('singleFeed'+i);
    post.style.color='blue';

    if (i===4){
        post.style.color='red';
    }
}

元のコードでは、1-10ではなく0-9を取得しようとします。

于 2012-07-05T21:38:18.480 に答える
1

私の意見では、@Chris が正しい答えを持っています。ただし、次のようなことを行います。

HTML

<li id=singleFeed1 class="singleFeed">aaaaaaaaaaaa</li>
<li id=singleFeed2 class="singleFeed">vvvvvvvvvvvv</li>
<li id=singleFeed3 class="singleFeed">dddddddddddd</li>
<li id=singleFeed4 class="singleFeed">aqqqqqqqqq</li>
<li id=singleFeed5 class="singleFeed">aaaaaddddaa</li>

Javascript

var posts=document.getElementsByClassName('singleFeed');
for(var i=0;i<posts.length;i++){
    posts[i].style.color='blue';
    if(i==4){
        posts[i].style.color='red';
    }
}
于 2012-07-05T21:41:15.077 に答える