Например, у меня есть эта таблица
<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.
Вы можете использовать следующее;
$("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
Попробуй это:
$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" : "";
});
});
Пожалуйста, проверьте это демо, и я считаю, что вы ожидаете этого
$ (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" ); }); }); });
Вы можете использовать:
$('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');
});
Шаг 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")
}
});