从DIV获取内部文本

时间:2016-05-18 12:14:42

标签: jquery

HTML:

<div id="country">
    <span>B</span>
    Bangladesh
</div>

<div id="capital">
    Dhaka
    <span>D</span>
</div>
  1. 来自#country,我希望孟加拉国
  2. 来自#capital,我希望达卡
  3. 我怎样才能做到这一点?

7 个答案:

答案 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());

Fiddle

答案 3 :(得分:1)

您可以过滤contents文本节点(nodetype = 3)并阅读textContent

var country = $('#country').contents().filter(function() {
    return this.nodeType == 3
})[1].textContent;

答案 4 :(得分:1)

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

示例:

$("#country").find("span")[0].nextSibling.nodeValue;
$("#capital").find("span")[0].previousSibling.nodeValue;

Fiddle Demo

答案 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)

&#13;
&#13;
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;
&#13;
&#13;

已经有很多答案。

您可以使用.clone(),如下所示:

answer = $('#capital').clone();
answer.children('span').remove();
alert(answer.text()); // alerts "text"

使用此格式,您可以在div中添加其他元素,并希望上面的代码足够简单,以便能够看到如何删除它们。

原帖:get text in div