如何获取元素的文本但排除该元素的子元素?

时间:2013-06-07 09:50:38

标签: javascript jquery html

我有一个HTML代码段:

<li class="as-selection-item">
<a class="as-close">×</a>
Rudy Hamilton
</li>

如何从Rudy Hamilton获取li.as-selection-item的值但却没有从x中获取值a.as-close

2 个答案:

答案 0 :(得分:6)

解决方案1 ​​

document.querySelector('.as-close').nextSibling.nodeValue

JSFiddle演示:http://jsfiddle.net/t8Qst/

它使用nextSibling来获取具有as-close类的元素之后的节点。

解决方案2

如果你想把li里面的所有东西都拿来,除了锚之外,你可以使用它:

var li = document.querySelector('.as-selection-item').cloneNode(true);
li.removeChild(li.querySelector('.as-close'));
alert(li.textContent);

您克隆li,从克隆中删除锚点,然后只显示其文本。

JSFiddle演示:http://jsfiddle.net/58pLz/

使用jQuery(如果你已经在使用它),这就是这个:

var li = $('.as-selection-item').clone();
$('.as-close', li).remove();
alert(li.text());

答案 1 :(得分:1)

使用jQuery可以使用:

$(".as-selection-item").text();

这将返回.as-selection-item内的所有thext而不是html

如果您只想要.as-selection-item内的文本(不在锚点中),您可以使用:

$(".as-selection-item").clone().children().remove().end().text();

克隆该对象,删除子对象并返回文本。

Fiddle