请帮助我理解为什么会这样。
(更新)TL; DR: 使用find with not(NESTED_ELEMENT)选择器时将包含嵌套元素的文本,但在使用find with not(NESTEDT_ELEMENT)+ contents + filter(TEXT_NODE)时将被排除。
我想从页面获取文本,但要排除某些元素。
为简单起见,我仅排除了<p>
元素(和后代),但是当我使用text()
时,我也在排除元素中获取文本。
当我使用contents()
过滤结果以仅包含文本节点时,只有通过不从排除的元素返回文本,not选择器才“正常工作”。请使用以下代码查看下图:
感谢。
为方便起见:
我测试的网址是this one。
为我提供排除元素文本的代码:
$('body').find(':not(p, p *)').text()
为我提供所需文本的代码(排除元素的文本不存在):
$('body').find(':not(p, p *)').contents().filter(function(){return this.nodeType == 3}).text()
这是URL中的HTML部分。正如你所看到的,那里有一个<p>
元素,如上所述,我想从这个HTML中获取文本但是要排除一些元素(为简单起见选择了p,生产中会有更多的规则)。 / p>
<div class="col-lg-12">
<header id="header" role="banner" class="jumbotron">
<h1>
<img src="/img/icon/apple-touch-icon-114-precomposed.png" class="offscreen" alt="">
<i class="icon-html5" aria-hidden="true"></i><span class="offscreen">HTML 5</span>
<span>Semantics and Accessibility: <span class="subheader">Heading Structure</span></span>
</h1>
<p class="lead" id="lead_content">The more you understand the specification, the more you'll realize there are more right
ways to implement <em>proper</em> semantic HTML markup than wrong. Thinking in terms of web accessibility can provide direction.</p>
</header>
</div>
答案 0 :(得分:0)
尝试使用$products = Product::all();
Session::put('products', $products);
dd(Session::get('products'));
,.clone()
,.remove()
.text()
&#13;
var filtered = $(".col-lg-12").clone();
filtered.find("p").remove();
console.log(filtered.text())
&#13;