也许是这样:
$("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 里面没有人做
- 现在找到那些确实有“地址”的人——在 td.tdSoap 里面没有人做
- 现在有,结合这些 - 在 td.tdSoap 内部仍然没有,所以没有选择任何内容。
现在,这也可以取出“has”并添加下一个:
$("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();