Выделите поле с помощью jquery

0

Например, у меня есть эта таблица

<table class="table">
    <tr>
        <td>123</td>
        <td>456</td>
        <td>123</td>
        <td>456</td>
    </tr>
</table>

и этот список

<ul>
    <li>123</li>
    <li>456</li>
</ul>

Можно ли добавить style="background: yellow" в элемент <td> с тем же значением, что и элемент <li> используя jQuery. Это должно быть событие onclick или onhover.

  • 3
    Да, это возможно.
  • 0
    На каком событии или взаимодействии?
Теги:
xhtml

5 ответов

1
Лучший ответ

Вы можете использовать следующее;

$("td").on("mouseover", function () {
    var tdVal = $(this);
    $("li").each(function() {
        if ($(this).text() == tdVal.text()) {
            tdVal.css("background", "yellow");    
        }
    });   
}).on("mouseleave", function() {
    $(this).css("background", "white");    
});

Вот рабочая демонстрация: jsFiddle

0

Попробуй это:

$elements = $('td, li');
$elements.on('click, mouseover', function () {
    var elem = this;
    $elements.each(function () {
        this.style.backgroundColor = (this !== elem && this.innerHTML === elem.innerHTML && this.tagName !== elem.tagName) ? "green" : "";
    });
});

Рабочий скрипт

0

Пожалуйста, проверьте это демо, и я считаю, что вы ожидаете этого

$ (document).ready(function() {

$( "#ulList li" ).mouseover(function() {
    var selectedText = $( this ).text();
    $('#tableList tr td').each(function(i, val) {
       if(selectedText == $(val).text()){
          $( val ).css( "background-color", "yellow" );
       }
    });    });
    $( "#ulList li" ).mouseout(function() {
    $('#tableList tr td').each(function(i, val) {
       $( val ).css( "background-color", "white" );

    });    });
 });

демонстрация

0

Вы можете использовать:

$('ul li').click(function() {
    $('.table tr td').css('background','none');
    var val = $.trim($(this).text());
    $('.table tr td').filter(function() {
        return $.trim($(this).text()) == val    
    }).css('background','yellow');
});

Демо-версия скрипта

0

Шаг 1: найдите все значения от li на загрузке страницы

  var values;
  $("li").each(function(){
     values.push($(this).text());
  });

Шаг 2: Проверьте, содержит ли td эти значения для любого желаемого события

  $(".table tr").each(function(){
      var val = $(this).text();
      if($.inArray(val,values)){
         // apply style
         $(this).css("background","yellow")
      }
  });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню