3

我正在尝试从列表中选择文本。我想选择“一级文本”而不​​是“二级文本”。

<div class="selectedText"></div>
<ul>
  <li>First level text
    <ul>
      <li>Second level text</li>
    </ul>
  </li>
 </ul>

我的错误选择器:

var firstLI = $('ul').find('li:first');
$('.selectedText').text(firstLI.text());

它将嵌套 UL 的内容粘贴到我的文本框中。
我怎样才能只得到 LI 文本?谢谢。

小提琴:http: //jsfiddle.net/eYa3G/

4

2 回答 2

7

听起来您只想要该元素的第一个文本节点。

$("ul li:first").contents().first().text();

js小提琴

这将获取第一个节点的文本,在您的情况下这是一个文本节点。

或者,如果 jQuery 供不应求……

document.querySelector("ul li:first-child").firstChild.data;

js小提琴

于 2013-01-10T05:52:58.947 回答
0

这是获取 li 元素文本的一种方法

alert( $('ul li:first').clone().children().remove().end().text());

JsFiddle 演示

完整代码

jQuery(document).ready(function ($) {

 var data= $('ul li:first').clone().children().remove().end().text();
   $('.selectedText').text(data);
});
于 2013-01-10T05:54:15.670 回答