在<x> A <br/> B </ x>中隐藏B.

4 jquery

我有一个:

<h2>foo<br/>bar</h2>
Run Code Online (Sandbox Code Playgroud)

而我想隐藏"酒吧",但我找不到合适的选择器.

它甚至可能吗?

ala*_*mar 12

我认为你应该把B包起来<span>B</span>并隐藏那个跨度.


Kob*_*obi 6

第一:正确的方法是添加另一个标签,如果可以,就像其他人建议的那样.
但是,这可以使用jQuery的contents()选择器完成,分两个阶段(我已经搜索了如何使用jQuery查找文本节点).首先,$(document).ready找到所有自由文本节点并用虚拟<span>s(或任何你想要的)包围它们.鉴于此,这将对您的DOM进行一些垃圾邮件:

$(document).ready(function(){
 $("h2").contents()
    .filter(function(){ return this.nodeType != 1; })
    .wrap("<span/>");
});
Run Code Online (Sandbox Code Playgroud)

现在您没有任何裸文本节点,因此您可以轻松选择第二行:

$("h2 br").nextAll();
Run Code Online (Sandbox Code Playgroud)