Vinnaren i pepparkakshustävlingen!
2018-05-25, 16:09
  #1
Medlem
Kod:
<table
<
tr><td>X1</td><td>0</td><td>0</td><td>1</td></tr
<
tr><td>X2</td><td>0</td><td>0</td><td>2</td></tr
<
tr><td>X3</td><td>0</td><td>0</td><td>1</td></tr
<
tr><td>X4</td><td>0</td><td>0</td><td>1</td></tr
<
tr><td>X5</td><td>0</td><td>0</td><td>2</td></tr
</
table

Ok här kommer lite mer avancerad problem som jag inte kan lösa.
Om sista <td></td> i varje rad innehåller 1 så ska hela den raden färgas rött dvs raden mellan <tr></tr>

Jag tänker så här men kan inte komma nånstans utan skills.

Kod:
if ///nånting .innerHTML == 1) { 
    ///nånting .style.color = "#ff0213";
        


Eller

Kod:
if tr:last == == nånting 
Citera
2018-05-25, 18:19
  #2
Medlem
Får det inte att fungera har testat massa koder.

Kod:
<table>  
<
tr><td>X1</td><td>0</td><td>0</td><td>1</td></tr>  
<
tr><td>X2</td><td>0</td><td>0</td><td>2</td></tr>  
<
tr><td>X3</td><td>0</td><td>0</td><td>1</td></tr>  
<
tr><td>X4</td><td>0</td><td>0</td><td>1</td></tr>  
<
tr><td>X5</td><td>0</td><td>0</td><td id="main">2</td></tr>  
</
table

Testade med denna och fick denna resultat https://i.imgur.com/m55PvoM.png
Kod:
<script>   
$(
".main").each(function() {
    var 
thisHtml = $(this).html();
    
console.log(thisHtml);
    if (
thisHtml === "1") { 
        $(
".main").closest('td').prev().css"background-color""red" );  
    }        
});
</script> 

Jag tror att det kan bero på att min php fil som skriver ut tabellen är fel byggt kanske?
Kod:
while($row mysqli_fetch_array($result)){
            echo 
"<tr>";
                echo 
"<td>" $row['test1'] . "</td>";
                echo 
"<td>" $row['test2'] . "</td>";
                echo 
"<td>" $row['test3'] . "</td>";
                echo 
"<td class='main'>" $row['test4'] . "</td>";
            echo 
"</tr>"
Citera
2018-05-25, 19:16
  #3
Medlem
Börjar närma mig men scriptet fungerar endast on click.
Hur gör jag det utan att behöva klicka?

Kod:
<script>   
$(
'.main').on("click", function(){
    ($(
this).parent().children(':nth-child(-n+4)').css"background-color""red" )); //Doesn't work
});
</script> 
Citera
2018-05-25, 19:31
  #4
Medlem
Så här kanske:

Kod:
$( 'td:last-child:contains("1")' ).parent().css( 'background-color', 'red' );

Det vill säga "föräldern (tr) till varje td som är sista barnet till en förälder, och innehåller 1.

Demo: https://jsfiddle.net/LnLub5ng/
Citera
2018-05-25, 19:43
  #5
Medlem
Citat:
Ursprungligen postat av Nich
Så här kanske:

Kod:
$( 'td:last-child:contains("1")' ).parent().css( 'background-color', 'red' );

Det vill säga "föräldern (tr) till varje td som är sista barnet till en förälder, och innehåller 1.

Demo: https://jsfiddle.net/LnLub5ng/

Ska kolla på den men blev precis klar med min egna lösning tog flera timmar som icke programmera.

Kod:
<script>   
$(
'.main').on("click", function() {
    var 
thisHtml = $(this).html();
    
console.log(thisHtml);
    if (
thisHtml === "1") { 
        ($(
this).parent().children(':nth-child(-n+4)').css"background-color""red" ));
    }        
});
$( 
".main" ).trigger"click" );
</script> 
Citera
2018-05-26, 01:20
  #6
Medlem
z0mfg(ish)s avatar
Varför löser du inte det där direkt i PHP-koden?

Kod:
while($row mysqli_fetch_array($result)){
    echo (
$row['test4'] == 1) ? "<tr style=\"background-color: red;\">" "<tr>";
        echo 
"<td>" $row['test1'] . "</td>";
        echo 
"<td>" $row['test2'] . "</td>";
        echo 
"<td>" $row['test3'] . "</td>";
        echo 
"<td class='main'>" $row['test4'] . "</td>";
    echo 
"</tr>";

Citera
2018-05-27, 16:35
  #7
Medlem
Citat:
Ursprungligen postat av z0mfg(ish)
Varför löser du inte det där direkt i PHP-koden?

Kod:
while($row mysqli_fetch_array($result)){
    echo (
$row['test4'] == 1) ? "<tr style=\"background-color: red;\">" "<tr>";
        echo 
"<td>" $row['test1'] . "</td>";
        echo 
"<td>" $row['test2'] . "</td>";
        echo 
"<td>" $row['test3'] . "</td>";
        echo 
"<td class='main'>" $row['test4'] . "</td>";
    echo 
"</tr>";


Thanks trevligare med PHP.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback