提取 html 元素之间的文本
Extract text between html elements
>有没有办法在html标签之间提取文本?例如,如果我有加利福尼亚州的城市名称,每个城市的名称在段落标签中单独列出,我可以只打印出段落标签内出现的文本吗?
<div class="cities">
<div><p>Los Angeles</p><h5>Description</h5></div>
<div><p>San Francisco</p><h5>Description</h5></div>
<div><p>San Diego</p><h5>Description</h5></div>
<div><p>Santa Barbara</p><h5>Description</h5></div>
<div><p>Davis</p><h5>Description</h5></div>
<div><p>San Jose</p><h5>Description</h5></div>
</div>
我想定位段落标签中的所有城市,而不是 h5 标签中的描述。预期输出为:
洛杉矶旧金山圣地亚哥圣巴巴拉戴维斯圣何塞
使用map()
函数,您可以获取p
中的所有文本,如下所示。
var cities = $('.cities p').map(function () {
return $(this).text();
}).get().join();
$('.show').html(cities)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cities">
<div><p>Los Angeles</p><h5>Description</h5></div>
<div><p>San Francisco</p><h5>Description</h5></div>
<div><p>San Diego</p><h5>Description</h5></div>
<div><p>Santa Barbara</p><h5>Description</h5></div>
<div><p>Davis</p><h5>Description</h5></div>
<div><p>San Jose</p><h5>Description</h5></div>
</div>
<h3>All cities</h3>
<div class="show"></div>
你可以使用 jQuery 通过调用 jQuery 元素上的 text()
函数来提取文本。
$(selector).text()
或者你可以用带有textContent
属性的常规JS来做
element.textContent
使用选择器 $(".cities p")
, $.map()
, .textContent
,它返回一个数组。要将返回的数组转换为包含数组所有项的单个字符串,可以使用Array.prototype.join(/* delimiter */)
var cities = $.map($(".cities p"), function(el) {
return el.textContent
});
console.log(cities, cities.join(" "))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div class="cities">
<div><p>Los Angeles</p><h5>Description</h5></div>
<div><p>San Francisco</p><h5>Description</h5></div>
<div><p>San Diego</p><h5>Description</h5></div>
<div><p>Santa Barbara</p><h5>Description</h5></div>
<div><p>Davis</p><h5>Description</h5></div>
<div><p>San Jose</p><h5>Description</h5></div>
</div>
使用选择器访问项,html
方法从元素中提取值。它html
方法也可用于设置该元素的值或内容:
$('.cities >:nth-child(1)').html()
上面的代码将提取第一个元素,您可以插入 oterh 元素
使用jquery,这可以实现为:
$(".cities").find("p").text();
或一次服用一个
$(".cities p").each(function() {
var my_cities = $(this).text();
});
相关文章:
- 单击时在文本之间插入图像节点
- 如何使用javascript在文本之间插入图像节点
- 文本之间的空格,但文本前后不空格
- 每次单击时在文本之间切换
- 如何删除合理段落中文本之间不需要的空白
- 在文本之间添加br标记(第二行省略号)
- jQuery添加文本之间的href标签的td
- 如何在网站上显示两个文本之间的差异(如diff或WinMerge,但在JS中)
- HTML和正则表达式,如何匹配文本之间的逗号与关键字
- 使用JSE (Selenium c#)设置值和文本之间的区别
- 在Javascript中提取文本之间的数字
- 如何选择特定的文本之间的HTML标签与RegExp
- 解析两个文本之间的字符串
- Regex的效率,更好的方式选择文本之间的html
- 不会在javascript中的文本之间创建新行
- 如何减少传奇矩形和传奇文本之间的间距在酒窝
- 添加<br>字符串中的文本之间
- 使用 jQuery 在粗体和普通文本之间切换
- JavaScript正则表达式忽略文本之间的条件
- CSS是否有办法在光标和输入中的占位符文本之间添加空格?