在此标记中选择第一个文本节点

时间:2011-12-14 15:18:12

标签: jquery jquery-selectors

我正在尝试在此有序列表中的第一个li中选择第一个 text 节点...

<ol id="authors">
  <li id="CD007786-cr-0002">Robert S Phillips<sup>1,*</sup>, </li>
  <li id="CD007786-cr-0003">Shireen Gopaul<sup>2</sup>, </li><li id="CD007786-cr-0004">Faith Gibson<sup>3</sup>, </li>

到目前为止,我已经尝试过:

jQuery("ol#authors li:first-child").text()

但是这会回来:

Robert S Phillips1,*, 

我想要得到的只是:

Robert S Phillips

3 个答案:

答案 0 :(得分:21)

尝试

alert( jQuery("#authors li:first-child").contents().get(0).nodeValue );

答案 1 :(得分:0)

使用常规javascript获取文本节点更容易,实际上获取正确的节点应该像

一样简单
var node = document.querySelector('#authors li').firstChild;

获取值

var text = node.nodeValue;

FIDDLE

答案 2 :(得分:-1)

这样做

var $first = $("#authors li:first-child").clone();
$first.find("sup").remove();
var fullName = $first.text().trim().replace(/,$/, "");

click here for the fiddle

理想情况下,我会将标记结构更改为

<ol id="authors">
  <li id="CD007786-cr-0002"><span class="fullName">Robert S Phillips</span><sup>1,*</sup>, </li>
  <....>
</ol>

然后使用

提取名称
$("#authors li:first-child span.fullName").text();