おそらくこれ:
$("table tr td:contains('Adresse')").not(':contains(Adresse\u00a0IP)').next('.tdSoap').text();
なぜこれが機能しないのですか:(あなたが持っているもの)
$("table tr:has(td:contains('Adresse'):not(':contains(Adresse\u00a0IP)')) td.tdSoap").text();
jQueryはセレクターで右から左を使用するので、次のように考えてください。
- すべてのtd.tdSoapを検索
- 'Adresse\u00a0IP'を持たないものを見つけてください-td.tdSoap内には何もありません
- 'Adresse'を持っているものを見つけてください-まあ、td.tdSoapの中には何もありません
- 今、それらを組み合わせます-それでもそのtd.tdSoap内には何もないので、何も選択されません。
さて、これは「持っている」を取り出して次を追加することでも機能します:
$("table tr td:contains('Adresse'):not(':contains(Adresse\u00a0IP)')").next("td.tdSoap").addClass('myfirst');
ただし、いくつかのパフォーマンスメトリックを実行し、これらのどれが高速であるかを確認します。
$('table').find('tr').find('td:contains("Adresse")').not(':contains("Adresse\u00a0IP")').next('.tdSoap').text();
$('table').find('.tdSoap').prev(':contains(Adresse)').not(':contains(Adresse\u00a0IP)').next().text();
$("table tr td:contains('Adresse'):not(':contains(Adresse\u00a0IP)')").next('td.tdSoap').text();
$("table tr:has(td:contains('Adresse'))").not(":contains(Adresse\u00a0IP)").find("td.tdSoap").text();
$("table tr td:contains('Adresse')").not(':contains(Adresse\u00a0IP)').next('.tdSoap').text();
注:これらの「グループ」がさらにある場合、それらすべてのテキストを取得します。すべてが必要かどうかはわかりませんが、それがあなたの持っているものです。
編集:これは、 
$('table').find('tr').find('td:contains("Adresse")').not(':contains("Adresse\u00a0IP")').not(':contains("Adresse IP")').next('.tdSoap').text();