2016-02-12 5 views
1

Вышеупомянутая желтая ссылка не дает решений для этого. Правильный ответ .siblings(), который не является ни в одном из связанных решений

я пытаюсь выбрать все td элементов для того, переданных в качестве $(this) исключения. Каков правильный способ сделать это?

Я не думаю, что следующие работы:

$(this).find(':not') 

..since Ищу все на том же уровне DOM как $ (это).

<html> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script type="text/javascript"> 
 
     $(document).ready(function() { 
 
     
 
     $('a').click(function() { 
 
      alert($(this).text()); 
 
     }); 
 
     
 
     }); 
 
    </script> 
 
    </head> 
 
    <body> 
 
    
 
    <a>Apples</a><br /> 
 
    <a>Bananas</a><br /> 
 
    <a>Oranges</a><br /> 
 
    
 
    </body> 
 
</html>

Просто констатирую, чтобы это было ясно, что я ищу для общего решения, а не один, специфичных для данного примера. :)

+1

Просьба представить HTML – Thangaraja

+0

'$ (это) .find ("тд") нет (это)' – tymeJV

+3

Ответил уже: http://stackoverflow.com/questions/437958/ jquery-exclude-this-from-selector – CainBot

ответ

4

Используйте метод .not(), чтобы исключить предыдущий выбор jQuery. Вы можете передать ему селектор, но также и существующий элемент или объект jQuery.

var others = $('td').not(this); 

$('td').on('click', function() { 
 
     $(this).css('color', 'red') 
 
     $('td').not(this).css('color', 'blue'); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr><td>Cell1</td><td>Cell2</td></tr> 
 
    <tr><td>Cell3</td><td>Cell4</td></tr> 
 
    <tr><td>Cell5</td><td>Cell5</td></tr> 
 
</table>

jQuery.not() reference

После просмотра вашего обновления и различные комментарии, я начинаю думать, что вы просто хотите, чтобы получить братьев и сестер this. Если вы просто хотите братьев и сестер элемента, используйте функцию jQuery siblings(). Эта функция необязательно принимает селектор для получения только определенных родственных браков. Во всяком случае, братья и сестры неявно исключают сам . .

$('td').on('click', function() { 
 
     $(this).css('color', 'red') 
 
     $(this).siblings().css('color', 'blue'); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr><td>Cell1</td><td>Cell2</td></tr> 
 
    <tr><td>Cell3</td><td>Cell4</td></tr> 
 
    <tr><td>Cell5</td><td>Cell5</td></tr> 
 
</table>

+0

Должен просто использовать 'this' over' $ (this) '- в любом случае +1 – tymeJV

+0

@tymeJV Вы правы. Это даже чище. Я изменил это. – GolezTrol

+0

будет работать с чем-то вроде '' $ ($ (this) .parent()). Not (this); '.. update: nope.как я могу использовать его, не зная текущий уровень выбора dom. –

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