对span元素执行JavaScript循环,检查它们的值并替换其他节点边框颜色

JavaScript loop on span elements, checking their values and replacing other node border-color

本文关键字:替换 其他 颜色 边框 节点 执行 元素 span JavaScript 循环 检查      更新时间:2023-09-26

我正在Wordpress CMS上创建一个新网站,这里有一个很大的问题。

我想实现什么?我正在实现一个审查系统,使用PHP,我在我的网站中选择自定义的分类法值,并将其粘贴为圆形图表。一切都很正常,但我想再达到一个效果。我想根据分类法值更改圆的颜色(现在它在span元素中(。

我该如何做到这一点?我尝试了很多不同的JS/JQuery代码,但都没有正常工作(大多数时候,它只选择第一个跨度值,并为所有元素设置颜色,而不是检查所有元素(。

这里有一个代码示例:

HTML:

                            <div class="c100 p<?php $score = get_the_term_list( $post->ID, 'score' );
                                                               $score = strip_tags( $score );
                                                               echo $score;
                                                               ?>">
                              <span class="rate"><?php $score = get_the_term_list( $post->ID, 'score' );
                                                               $score = strip_tags( $score );
                                                               echo $score;
                                                               ?></span>
                              <div class="slice">
                                <div class="bar"></div>
                                <div class="fill"></div>
                              </div>
                            </div>
                        </div>

JS:

 var temp = document.getElementsByClassName('c100');
   for (i=0;i<=temp.length;i++) {
       var rate = document.getElementsByClassName('rate');
       if (parseInt(rate[i].innerHTML) < 25 ) {
           border = {'border-color':'red'};
           $('.pie, .c100 .bar, .c100.p51 .fill, .c100.p52 .fill, .c100.p53 .fill, .c100.p54 .fill, .c100.p55 .fill, .c100.p56 .fill, .c100.p57 .fill, .c100.p58 .fill, .c100.p59 .fill, .c100.p60 .fill, .c100.p61 .fill, .c100.p62 .fill, .c100.p63 .fill, .c100.p64 .fill, .c100.p65 .fill, .c100.p66 .fill, .c100.p67 .fill, .c100.p68 .fill, .c100.p69 .fill, .c100.p70 .fill, .c100.p71 .fill, .c100.p72 .fill, .c100.p73 .fill, .c100.p74 .fill, .c100.p75 .fill, .c100.p76 .fill, .c100.p77 .fill, .c100.p78 .fill, .c100.p79 .fill, .c100.p80 .fill, .c100.p81 .fill, .c100.p82 .fill, .c100.p83 .fill, .c100.p84 .fill, .c100.p85 .fill, .c100.p86 .fill, .c100.p87 .fill, .c100.p88 .fill, .c100.p89 .fill, .c100.p90 .fill, .c100.p91 .fill, .c100.p92 .fill, .c100.p93 .fill, .c100.p94 .fill, .c100.p95 .fill, .c100.p96 .fill, .c100.p97 .fill, .c100.p98 .fill, .c100.p99 .fill, .c100.p100 .fill').css(border);
       } else {
           border = {'border-color':'green'};
           console.log("nie ma tragedii");
       };
   }

那么我想实现什么呢?1.选择.span类的span元素的数量2.将1步中拾取的数量循环3.检查跨度节点的值4.如果值小于25,则将某个类的边框颜色设置为红色5.如果数值小于50但大于25,则变为黄色6.如果该值小于75但大于25,则更改为蓝色7.如果更高,则将颜色设置为绿色

从一开始就感谢,干杯!

<div class="reviews">
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/tbc.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:#3e0201">
            <p> score:</p>
            <div class="c100 p75">
                <span class="rate">75</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill" style="border-color: red;"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: TBC</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/wow-tbc/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 13 godzin ago</span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/legion.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:green">
            <p> score:</p>
            <div class="c100 p98">
                <span class="rate">98</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill" style="border-color: red;"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: Legion</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-5/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/mop.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:black">
            <p> score:</p>
            <div class="c100 p50">
                <span class="rate">50</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: MoP</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-4/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/cata.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:red">
            <p> score:</p>
            <div class="c100 p5">
                <span class="rate">5</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: Cata</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-3/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>

在您的代码中,for (i=0;i<=temp.length;i++)是错误的,它应该是for (i=0;i<temp.length;i++),否则它将抛出索引错误。

因为我不知道你的HTML。为了满足您的要求,我使用了4个具有不同值和类的span作为span。我使用$.each函数循环它,并检索它们的text。然后根据您的情况设置它们的边框颜色。

$('.rate').each(function(){
  var val=parseInt($(this).text());
  $div=$(this).parent().find('.fill');
  if(val<=25){
    $div.css('border-color','red');
  }else if(val>25 && val<=50){
    $div.css('border-color','yellow');
  }else if(val>50 && val<=75){
    $div.css('border-color','blue');
  }
  else if(val>75){
    $div.css('border-color','green');
  }
});
.fill{
  padding:10px;
  border-width:2px;
  border-style:solid;
  background-color:#fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="reviews">
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/tbc.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:#3e0201">
            <p> score:</p>
            <div class="c100 p75">
                <span class="rate">75</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill" style="border-color: red;"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: TBC</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/wow-tbc/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 13 godzin ago</span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/legion.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:green">
            <p> score:</p>
            <div class="c100 p98">
                <span class="rate">98</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill" style="border-color: red;"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: Legion</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-5/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/mop.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:black">
            <p> score:</p>
            <div class="c100 p50">
                <span class="rate">50</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: MoP</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-4/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>
<div class="single-review">
    <div class="thumb-bar">
        <div class="thumb">
            <img id="bg" src="http://localhost/wordpress/wp-content/uploads/2016/08/cata.jpg">
            <div class="thumb-tag">
                PC </div>
        </div>
        <div class="review" id="review" style="background:red">
            <p> score:</p>
            <div class="c100 p5">
                <span class="rate">5</span>
                <div class="slice">
                    <div class="bar" style="border-color: red;"></div>
                    <div class="fill"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="review-note">
        <h3>WoW: Cata</h3>
        <div class="tag-list">
            <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/gamepad.png" alt="">
            <span class="game-tags"><a href="http://localhost/wordpress/genre/rpg/" rel="tag">RPG</a>  </span>
        </div>
        <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada e... <a href="http://localhost/wordpress/reviews/test-3/">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a>
        </p>
        <div class="news-info">
            <div class="time-stamp">
                <span>
                                    <i class="fa fa-clock-o" aria-hidden="true"></i> 1 dzień ago                                    </span>
            </div>
            <div class="comments-stamp">
                <span>
                                    <img src="http://localhost/wordpress/wp-content/themes/blog/library/images/comments-gray.png" alt="">0                                    </span>
            </div>
        </div>
    </div>
</div>

$('.rate').each(function(){
              var val=parseInt($(this).text());
              $div=$(this).parent().find('.bar');
              $divTwo=$(this).parent().find('.fill');
              if(val<=25){
                $div.css('border-color','red');
                  $divTwo.css('border-color','red');
              }else if(val>25 && val<=50){
                $div.css('border-color','yellow');
                  $divTwo.css('border-color','yellow');
              }else if(val>50 && val<=75){
                $div.css('border-color','blue');
                  $divTwo.css('border-color','blue');
              }else if(val>75){
                $div.css('border-color','green');
                  $divTwo.css('border-color','green');
              }
        });

使用了这段代码,现在它按预期工作,真的很感谢您的帮助。现在我明白问题出在哪里了,祝你好运,加油!