从DIV获取内部文本

HTML:

B Bangladesh
Dhaka D
  1. #country ,我想得到孟加拉国
  2. 来自#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()); 

小提琴

您可以使用nextSiblingpreviousSibling属性获取该文本。

例:

 $("#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