JQuery contém | alvo apenas primeiro ancestral
Pergunta
Estou tentando direcionar e, eventualmente, estilizar uma string, neste exemplo BLA, em uma página HTML com muitas tabelas testadas.
Por exemplo página HTML:
<table>
<tr>
<td><table><div><tr><td>BLA</td></tr></div></table></td>
</tr>
E o script jquery que eu uso:
$("td:contains('BLA')");
para fazer isso, mas vejo que TODOS os td's estão selecionados.Como posso obter o primeiro td, sem todos os ancestrais?E se isso for possível, como posso adicionar uma classe ao primeiro ancestral ao subir na árvore DOM?(e apenas este)
Obrigado comunidade
Solução
O que você descreve é o último td e não o primeiro, pois eles são retornados na ordem hierárquica do DOM.
$('td:contains("BLA"):not("td td")').addClass('whatever');
demonstração em http://jsfiddle.net/92Xj2/
Atualizar após esclarecimento no comentário
$('td:not(:has(td)):contains("BLA")').addClass('whatever');
nova demonstração http://jsfiddle.net/gaby/92Xj2/4/
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow