比较javascript中的浮点数并更改最高浮点数的颜色

冯·卡瓦里尔

我有一个HTML表,用数据库中的值在php中制成。

我想获得最高的价格并更改其颜色(最小的价格也要相同)。但是在我的脚本中,我认为我的比较存在问题,因为它错过了1/2值。(我的英语不是很好,所以希望您能理解该代码)

    <table>
      <tr>
        <th>Rang</th>
        <th>Nom</th>
        <th>Prix(€)</th>
        <th >Description</th>
        <th>Précisions d'achat</th>
    </tr>

    <?php
        $i=1;
        while($donnees = $resultPop->fetch()){
            echo '<tr>
            <td>'.$i.'</td>
            <td><a href="'.$donnees['POP_LINK'].'">'.$donnees['POP_NOM'].'</a></td>
            <td class="prix">'.$donnees['POP_PRIX'].'</td>
            <td>'.$donnees['POP_DESCRIPTION'].'</td>
            <td>'.$donnees['POP_PRECISION'].'</td>
            </tr>';
            $i++;
        }
    ?>
    </table>
    <script>
        var prix = new Array;
        prix[0] = document.getElementsByClassName('prix');
        var i = 0;
        var cheapest = 0;
        while(i< 7){
            console.log(i);
            if (Number(prix[0][i].innerHTML) > Number(prix[0][i+1].innerHTML)){
                cheapest = prix[0][i+1];
                console.log(cheapest.innerHTML);
            }
            i++;
        }
        cheapest.style.color = 'red';
    </script>

或者我认为也许在做一个php函数,但是后来我不知道如何更改文本的颜色...

这是控制台输出:

0
1
11.17
2
3
12.90
4
5
12.90
6

完整值是:12.73 12.90 11.17 22.90 12.90 14.90 12.90 12.90粗体为红色。

这是呈现的HTML和代码:

<table>
                    <tr>
                        <th>Rang</th>
                        <th>Nom</th>
                        <th>Prix(€)</th>
                        <th >Description</th>
                        <th>Précisions d'achat</th>
                    </tr>

                    <tr>
                                <td>1</td>
                                <td><a href="">Twisty - AHS</a></td>
                                <td class="prix">12.73</td>
                                <td>Twisty le clown dans la saison 4 d'American Horror Story</td>
                                <td>/</td>
                            </tr>12.73<tr>
                                <td>2</td>
                                <td><a href="">Agent Smith - Matrix</a></td>
                                <td class="prix">12.90</td>
                                <td>L'agent Smith dans Matrix</td>
                                <td>Prendre la figurine de l'agent Smith</td>
                            </tr>12.90<tr>
                                <td>3</td>
                                <td><a href="">Finn - Adventure Time</a></td>
                                <td class="prix">11.17</td>
                                <td>Finn dans Adventure Time</td>
                                <td>Frais de port gratuit. Sur Amazon</td>
                            </tr>11.17<tr>
                                <td>4</td>
                                <td><a href="">Titan Colossal - SNK</a></td>
                                <td class="prix">22.90</td>
                                <td>Le Titan Colossal de l'anime Shingeki No Kyojin. Figurine plus grande que d'hab donc prix + élevé</td>
                                <td>/</td>
                            </tr>22.90<tr>
                                <td>5</td>
                                <td><a href="">Marty McFly - BTTF</a></td>
                                <td class="prix">12.90</td>
                                <td>Marty Mc Fly dans la trilogie Retour vers le futur</td>
                                <td>/</td>
                            </tr>12.90<tr>
                                <td>6</td>
                                <td><a href="">The Dude - TBL</a></td>
                                <td class="prix">14.90</td>
                                <td>Le Duc du film The Big Lebowski</td>
                                <td>/</td>
                            </tr>14.90<tr>
                                <td>7</td>
                                <td><a href="">Wall-E</a></td>
                                <td class="prix">12.90</td>
                                <td>Wall-E du film Disney éponyme</td>
                                <td>/</td>
                            </tr>12.90<tr>
                                <td>8</td>
                                <td><a href="">Tim The Enchanter - HG</a></td>
                                <td class="prix">12.90</td>
                                <td>Tim l'Enchanteur du film Sacré Graal des Monty Python</td>
                                <td>Prendre Tim l'Enchanteur. Celui avec les cornes et le lapin</td>
                            </tr>12.90                  </table>
                <script>
                    var prix = new Array;
                    prix[0] = document.getElementsByClassName('prix');
                    var i = 0;
                    var cheapest = 0;
                    while(i< 7){
                        console.log(i);
                        if (Number(prix[0][i].innerHTML) > Number(prix[0][i+1].innerHTML)){
                            cheapest = prix[0][i+1];
                            console.log(cheapest.innerHTML);
                        }
                        i++;
                    }
                    cheapest.style.color = 'red';

                </script>

如果有人可以帮助我,那将很棒。并告诉我您是否需要更多详细信息。

来宾271314

您可以使用Array.prototype.slice()转换HTMLCollection为数组,Array.prototype.map().innerHTML元素作为数组返回Math.min()Math.max()Array.prototype.indexOf()从选择元件HTMLColloection在索引其中greastest或至少数是.innerHTML

var prix = document.getElementsByClassName("prix");
// added `+` operator to convert string to number
var n = [].slice.call(prix).map(function(el) {return +el.innerHTML});
var max = Math.max.apply(Math, n);
var maxIndex = n.indexOf(max);
var min = Math.min.apply(Math, n);
var minIndex = n.indexOf(min);
prix[maxIndex].style.color = "green";
prix[minIndex].style.color = "red";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章