HTML:
<div id="country">
<span>B</span>
Bangladesh
</div>
<div id="capital">
Dhaka
<span>D</span>
</div>
#country
,我希望孟加拉国 #capital
,我希望达卡 我怎样才能做到这一点?
答案 0 :(得分:8)
尝试这是否有效
$('#country').clone().children().remove().end().text();
$('#capital').clone().children().remove().end().text();
.clone()
克隆所选元素。
.children()
从克隆元素
.remove()
删除以前选择的子项
.end()
再次选择所选元素
.text()
从没有子元素的元素中获取文本
答案 1 :(得分:2)
你不能只编辑HTML吗?
<div id="country">
<span>B</span>
<span class="text">Bangladesh</span>
</div>
<div id="capital">
<span class="text">Dhaka</span>
<span>D</span>
</div>
然后,使用jQuery:
var one = $("#country>.text").text();
var two = $("#capital>.text").text();
答案 2 :(得分:2)
与Andy的答案类似,但这将删除所有元素,因此您不必每次删除子元素,因此无论您的div中有多少个子或什么结构,它总会返回文本
var clone = $('div#country').clone();
clone.find('*').remove();
console.log(clone.text());
答案 3 :(得分:1)
您可以过滤contents
文本节点(nodetype = 3)并阅读textContent
:
var country = $('#country').contents().filter(function() {
return this.nodeType == 3
})[1].textContent;
答案 4 :(得分:1)
您可以使用nextSibling
和previousSibling
属性获取该文字。
示例:强>
$("#country").find("span")[0].nextSibling.nodeValue;
$("#capital").find("span")[0].previousSibling.nodeValue;
答案 5 :(得分:1)
你应该使用innerHTML
var text1 = document.getElementById("country").innerHTML;
var text2 = document.getElementById("capital").innerHTML;
alert(text1);
alert(text2);
<div id="country">
<span>B</span>
Bangladesh
</div>
<div id="capital">
Dhaka
<span>D</span>
</div>
希望它有所帮助;)
答案 6 :(得分:1)
answer = $('#capital').clone();
answer.children('span').remove();
alert(answer.text()); // alerts "text"
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="country">
<span>B</span>
Bangladesh
</div>
<div id="capital">
Dhaka
<span>D</span>
</div>
&#13;
已经有很多答案。
您可以使用.clone(),如下所示:
answer = $('#capital').clone();
answer.children('span').remove();
alert(answer.text()); // alerts "text"
使用此格式,您可以在div中添加其他元素,并希望上面的代码足够简单,以便能够看到如何删除它们。