我有一个ul列表里面有li,里面有li文本和div.同一个类被分配给li,而div被赋予不同的类名.
我只想从li而不是div中获取文本.
这是片段:
$("ul li").on('click',function() { $("span").text($(this).text()); });
ul { position: relative } div { position: absolute; right: 0px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='same'>Text1 <div class='notsame'>Other text</div> </li> <li class='same'>Text2 <div class='notsame'>Other text</div> </li> <li class='same'>Text3 <div class='notsame'>Other text</div> </li> </ul> <span> </span>
我得到了O / P,而且div里面的文字也是如何避免的?
解决方法
从li中筛选出文本节点 – 请参阅下面的演示:
$("ul li").on('click',function() { $("span").text($(this).contents().filter(function(){ return this.nodeType == 3; // select text nodes }).text()); // paste all of them to the span });
ul { position: relative } div { position: absolute; right: 0px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='same'>Text1 <div class='notsame'>Other text</div> </li> <li class='same'>Text2 <div class='notsame'>Other text</div> and more </li> <li class='same'>Text3 <div class='notsame'>Other text</div> </li> </ul> <span> </span>