如何在锚标记内没有文本的情况下只获取外段文本?

时间:2016-01-30 10:51:03

标签: jquery html

以下代码:

$(".done").click(function(){
    var x = $(this).parent().text();
    $("#display").html(x);
});

运行显示This is a paragraph Done

我的html文件是:

<p> This is a paragraph <a href="#" class = "done">Done</a></p>
<p id="display"></p>

我想显示为:This is a paragraph

1 个答案:

答案 0 :(得分:5)

您需要在textNode内获取p。使用 contents() 获取所有内部元素,并使用 filter() 从中过滤textNode

&#13;
&#13;
$(".done").click(function() {
  var x = $(this).parent().contents().filter(function() {
    return this.nodeType === 3;
  }).text();
  $("#display").html(x);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p>This is a paragraph <a href="#" class="done">Done</a></p>
<p id="display"></p>
&#13;
&#13;
&#13;