2013-01-10 156 views
3

我想从列表中选择文本。我想选择“第一级文本”,而不是“第二级文本”。jQuery选择器:第一个

<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/

回答

7

听起来像是你只是想该元素的第一个文本节点。

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

jsFiddle

这将获得第一个节点的文本,这是您的案例中的文本节点。

或者,如果jQuery的供不应求......

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

jsFiddle

+0

这个工作的文本的一种方式,但我想知道,是什么的console.log?你有一个控制台,显示你跆拳道正在进行?我会给你我的右臂以获得更好的工具! :) –

+0

@JenniferMichelle很多浏览器都有一个'console'对象。您可以在此对象上记录日志,并在浏览器的控制台中查看结果。还有'警告','错误'和一堆其他有用的方法。 – alex

+0

谢谢!我会看看我是否可以在Chrome或其他内容中找到它。 –

0

这是获得li元素

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

JsFiddle Demo

全码

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

var data= $('ul li:first').clone().children().remove().end().text(); 
    $('.selectedText').text(data); 
});