从DIV获取内部文本
HTML:
B Bangladesh Dhaka D
- 从
#country
,我想得到孟加拉国 - 来自
#capital
,我想要达卡
我怎样才能做到这一点?
试试这是否有效
$('#country').clone().children().remove().end().text(); $('#capital').clone().children().remove().end().text();
.clone()
克隆选定的元素。
.children()
从克隆元素中选择子元素
.remove()
删除以前选择的子项
.end()
再次选择所选元素
.text()
从没有子元素的元素中获取文本
你不能只编辑HTML吗?
B Bangladesh Dhaka D
然后,使用jQuery:
var one = $("#country>.text").text(); var two = $("#capital>.text").text();
与Andy的答案类似,但是这将删除所有元素,因此您不必每次删除子元素,因此无论您的div中有多少个子或什么结构,它总是会返回文本
var clone = $('div#country').clone(); clone.find('*').remove(); console.log(clone.text());
小提琴
您可以使用nextSibling
和previousSibling
属性获取该文本。
例:
$("#country").find("span")[0].nextSibling.nodeValue; $("#capital").find("span")[0].previousSibling.nodeValue;
小提琴演示
您可以过滤文本节点的contents
(nodetype = 3)并读取textContent
:
var country = $('#country').contents().filter(function() { return this.nodeType == 3 })[1].textContent;
你应该使用innerHTML
var text1 = document.getElementById("country").innerHTML; var text2 = document.getElementById("capital").innerHTML; alert(text1); alert(text2);
B Bangladesh Dhaka D
answer = $('#capital').clone(); answer.children('span').remove(); alert(answer.text()); // alerts "text"
B Bangladesh Dhaka D