За последние 24 часа нас посетили 22843 программиста и 1703 робота. Сейчас ищут 1745 программистов ...

js: background row

Тема в разделе "JavaScript и AJAX", создана пользователем Horus1613, 24 май 2018.

  1. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Добрый день.
    Этот код ищет в html-таблице в колонке E слово London и закрашивает ячейку фиолетовым цветом. Подскажите, плиз, как закрасить всю строку?

    Код (Javascript):
    1. $('row c[r^="E"]', sheet).each( function () {
    2.                     // Get the value
    3.                     if ( $('is t', this).text() == 'London' ) {
    4.                         $(this).attr( 's', '20' );
    5.                     }
    6. });
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Код (Javascript):
    1. $(this).closest( 'row_selector' )
     
  3. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Код (Text):
    1. $(this).closest( 'tr ).attr( 's', '10' );
    Так не работает(
     
    #3 Horus1613, 24 май 2018
    Последнее редактирование: 24 май 2018
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Разметку покажите. Только одной строки
    --- Добавлено ---
    Кавычку где потеряли?
     
  5. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Кавычку ставил, только тут потерялась)


    Код (Text):
    1. <tr style="color:<?php echo $val['color'] ?>">
    2. <td></td>
    3. ......
    4. <td></td>
    5. </tr>
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Horus1613, возможно, что на ячейки действует какое-то другое css-правило с большим приоритетом.
    Код (Javascript):
    1. $(this).closest( 'tr' ).find('td').attr( 's', '10' );
    И откуда у вас взялся такой загадочный атрибут, как 's'?
     
  7. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    взято отсюда: https://datatables.net/extensions/buttons/examples/html5/excelCellShading
     
  8. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    а как мне перебрать все td в этом tr? Я тогда каждому td присвою этот атрибут
     
  9. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Я вам уже написал ответ на этот вопрос. Вы его в своих комментариях два раза цитировали.
     
  10. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    пардон, да.
    Не работает.
     
  11. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Конечно же работает и не может не работать в нормальной ситуации. Почему не работает у вас - я не знаю, т.к. не телепат. https://jsfiddle.net/s0wsmqjm/
     
    TeslaFeo нравится это.
  12. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Код (Javascript):
    1. $(this).closest( 'tr' ).find('td').css('backgroundColor', '#0000ff');
    думать придется рано или поздно :)
    --- Добавлено ---
    это вот вроде не моя проблема, а твоя, но я доку про closest почитал, ибо не пользовался раньше (использовал parent или parents)
    а ты почитал?
    если ответ "нет", то развития тебе не видать, пока не изменишь свой подход.
     
  13. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
  14. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    Правильный ответ:

    Код (Javascript):
    1.         $('row', sheet).each(function(x) {
    2.           if ($('c[r=E'+x+'] t', sheet).text() === 'London') {
    3.             $('row:nth-child('+x+') c', sheet).attr('s', '10');
    4.           }
    5.       });