<div class="title">
I am text node
<a class="edit">Edit</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望得到"我是文本节点",不希望删除"编辑"标签,并且需要跨浏览器解决方案.
可能重复:
jquery从.text()中排除一些子节点
鉴于此HTML:
<a href="#" class="artist">Soulive<span class="create-play">Play</span></a>
Run Code Online (Sandbox Code Playgroud)
我想得到a
(this
在我的函数的上下文中)没有文本内容的文本内容span
,所以我留下:
Soulive
Run Code Online (Sandbox Code Playgroud)
如果我做:
$(this).text();
Run Code Online (Sandbox Code Playgroud)
我明白了:
SoulivePlay
Run Code Online (Sandbox Code Playgroud)
如何排除文本内容span
?
使用Dom Crawler只获取文本(没有标记).
$html = EOT<<<
<div class="coucu">
Get Description <span>Coucu</span>
</div>
EOT;
$crawler = new Crawler($html);
$crawler = $crawler->filter('.coucu')->first()->text();
Run Code Online (Sandbox Code Playgroud)
输出:获取描述Coucu
我想输出(仅):获取描述
更新:
我找到了一个解决方案:(但这是非常糟糕的解决方案)
...
$html = $crawler->filter('.coucu')->html();
// use strip_tags_content in https://php.net/strip_tags
$html = strip_tags_content($html,'span');
Run Code Online (Sandbox Code Playgroud) 我正在尝试检索其中的文本计算,<li>
但我不需要<p>
在此计算中考虑子标记.所以当我添加以下内容时,它会自然地计算出其中的所有文本<li>
.
$('ul li').text().length;
Run Code Online (Sandbox Code Playgroud)
来自HTML:
<ul>
<li>Count me<p>Don't count me please.</p></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
有哪些可能的方法来实现这一点,以便不计算子标签文本?
有没有一种简单的方法可以从这个 div 中获取文本而不获取任何子元素?
<div id="someselector">
<strong>Title Text Unwanted</strong> This is the text I need
</div>
Run Code Online (Sandbox Code Playgroud)
我知道我可能可以在强上做一个子串。我只是想知道是否有一个函数可以在 jQuery 中自动为我完成,例如:
$('#someselector').html().not('strong').text()
Run Code Online (Sandbox Code Playgroud)