2016-11-04 5 views
0

В каждой строке есть несколько ячеек, содержащих класс .meow.
Как выбрать последние.meow элемент в каждая строка?
ниже код просто выбирает все .meows ...Как выбрать в каждой строке последний элемент с определенным классом?

$("tr").each(function(){ 
 
    $(".meow").css("border", "3px solid red"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> <td><div class="meow">Meow</div><td> 
 
     <td>Woof</td> 
 
     <td><div class="meow">Meow</div><td> 
 
    </tr> 
 
    <tr> <td> <div class="meow">Meow</div><td> 
 
     <td><div class="meow">Meow</div></td> 
 
     <td>Woof<td> 
 
    </tr> 
 
    </table>

+2

вы пробовали '$ (" мяу "). Последний(). CSS (" граница",«3px твердого вещества красный ");' – Theo

+0

уверен, и он просто выбирает последний мяу в целой таблице. –

+0

DOH, извините! Это получает последний .meow PERIOD, а не последний в каждой строке ... см. Мой ответ ниже для решения. – Theo

ответ

3

Попробуйте как этот

$("tr").each(function(){ 
 
    $(this).find(".meow:last").css("border", "3px solid red"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> <td><div class="meow">Meow</div><td> 
 
     <td>Woof</td> 
 
     <td><div class="meow">Meow</div><td> 
 
    </tr> 
 
    <tr> <td> <div class="meow">Meow</div><td> 
 
     <td><div class="meow">Meow</div></td> 
 
     <td>Woof<td> 
 
    </tr> 
 
    </table>

+0

Вы нацеливаете все 'tr', а он должен быть текущим –

+0

Упс ... скорректировал код. – Theo

2

Вы должны просто использовать querySelector:

document.querySelector(".child:last-of-type"); 

И вы можете использовать querySelector на элементы тоже, так что использование это на каждой строке.

https://jsfiddle.net/L5fdhs7d/

+0

Да, но зачем использовать это, когда вы получили jquery? –

+0

@Iwrestledabearonce. Потому что это быстрее, полностью поддерживается и стандартизировано и отлично работает. –

+1

Да, но если его проект уже использует jquery сильно, ради последовательности он должен продолжать делать это ... :) –

1

Изменить

$("tr").each(function(){ $(".meow").css("border", "3px solid red"); });

в

$("tr").each(function(){ $(this).find(".meow:last").css("border", "3px solid red"); });

https://api.jquery.com/last-selector/

+0

Он просто выбирает последний мяу в целой таблице. Не в каждой строке. –

+0

Мой плохой я не видел этого - Обновился ответ, но я вижу, что Тео добрался туда передо мной: p – Jackthomson

1

Использование JQuery-х last() функция.
Кроме того, вам необходимо оформить поиск от текущего tr, поэтому используйте $(this).find().

$(this).find(".meow").last().css("border", "3px solid red");

+0

тоже отлично работает, thanx –

Смежные вопросы