如何使用jQuery获取带有文本的子元素时,只能从DIV获取文本?

如何使用jQuery在具有文本的子元素时从父DIV获取文本?

I am a DIV I am a SPAN

如果我要使用$(’#div_1’)。text(),它会给我’我是一个DIV我是一个SPAN’。我如何得到’我是来自’div_1的DIV文本? 任何帮助非常感谢,谢谢。

试试:

 $('#div_1').clone().children().remove().end().text(); 

您可以直接访问要查找的文本节点。 在您的情况下,请使用以下内容:

  $('#div_1')[0].childNodes[0].nodeValue 

每个节点都有一个子节点列表,可以是其他HTML元素或文本节点。 因此,我们得到第一个子节点(在您的情况下是一个文本节点)并返回nodeValue ,它将是文本本身。 这是一个例子 。

 
I am a DIV I am a SPAN

http://sandbox.phpcode.eu/g/c4fb9.php

您可以使用.remove()来删除div中的HTML元素。 这是一个JSFiddle 。

和它一起使用的代码:

HTML

 
I am a DIV I am a SPAN

JavaScript的

 $(document).ready(function() { var div = $("div#div_1").clone(); div.find("*").remove(); $("div#output").text(div.text()); }); 

我已经使它变得比它需要的更复杂(使用.clone() )所以div的原始内容被保留。 如果您只想获取文本并且不关心原始内容,则可以退出.clone()