Javascript jQuery选择器混乱

Javascript jQuery选择器混乱,javascript,jquery,text,jquery-selectors,html-lists,Javascript,Jquery,Text,Jquery Selectors,Html Lists,我有以下代码 <span class="under"> texthere <ul class="list"> <li> list text here</li> </ul> </span> 文本此处 在此列出文本 当我运行$(“.under”).text()时,我会得到“text herelist text here” 我尝试了$(“.under:not(.list)”).text(

我有以下代码

<span class="under"> 
texthere
    <ul class="list">
        <li> list text here</li>
    </ul>
</span>

文本此处
  • 在此列出文本
当我运行
$(“.under”).text()
时,我会得到“text herelist text here”

我尝试了
$(“.under:not(.list)”).text()
,但罚款不足

对于
$(“.under”).not(“.list”).text()

所以我最后一次尝试是
$(“.list”).parent().text()

这将导致文本在此列出文本

这么简单的事情我哪里做错了

p、 如果jQuery更简单的话,它也可以是JavaScript

想要的结果:text此处

来自:

描述:获取集合中每个元素的组合文本内容 匹配元素的集合,包括其子元素

所以是的,这种行为是意料之中的

您可以尝试仅获取选择器的即时文本节点:

$('.under').contents().filter(function(){ return(this.nodeType == 3); }).text()
说明:

.contents()
()返回选择器的子级,包括textnodes

描述:获取匹配元素集中每个元素的子元素 元素,包括文本和注释节点

.filter()
接受回调以仅返回您需要的内容,基于此,您只接受
nodeType==3
的内容,这是一个文本节点

来自:

描述:获取集合中每个元素的组合文本内容 匹配元素的集合,包括其子元素

所以是的,这种行为是意料之中的

您可以尝试仅获取选择器的即时文本节点:

$('.under').contents().filter(function(){ return(this.nodeType == 3); }).text()
说明:

.contents()
()返回选择器的子级,包括textnodes

描述:获取匹配元素集中每个元素的子元素 元素,包括文本和注释节点

.filter()
接受回调以仅返回您需要的内容,基于此,您只接受
nodeType==3
的内容,这是一个文本节点


所以我猜你在找文本:
文本这里

var elem = $(".under").clone(),
    text = $.trim(elem.children().remove().end().text());

克隆元素,删除所有子元素并获取剩余文本。

所以我猜你是在找文本:
texthhere

var elem = $(".under").clone(),
    text = $.trim(elem.children().remove().end().text());

克隆元素,删除所有子元素并获取剩余文本。 ​

给你:

var text = $('.under').contents(':not(.list)').text();
例如: 给你:

var text = $('.under').contents(':not(.list)').text();
例如:

您并不是说希望得到什么结果,而是说不同选择器的结果是什么。请指定您想要的结果。我只是猜测文本,而不是元素。您并不是说希望得到什么结果,只是不同选择器的结果是什么。请指定您想要的结果。我只是猜测文本,而不是元素。非常好的回答defo+1,还有一个问题,您的答案是什么更优雅、性能更好?还是使用clone()的答案?为什么呢?这会快得多,因为据我所知,每次使用过滤器都会击败克隆,但您可以在jsperf中测试它以检查您自己。至于更优雅,我想这取决于旁观者吧?回答得很好,笛福+1,还有一个问题,你的答案是什么更优雅、性能更好,还是克隆人()的答案?为什么呢?这会快得多,因为据我所知,每次使用过滤器都会击败克隆,但您可以在jsperf中测试它以检查您自己。至于更优雅,我想这取决于旁观者吧?