$("#item_1")。text()将返回#item_1下的所有文字,但我只需要"第一项"。
是否可以获得文字"第一项"通过使用jquery?
<ul>
<li id="item_1">
The First Item
<ul class="ltUndertema _khKonteringUndertemaer mt2">
<li>Item 1.1</li>
<li>Item 1.2</li>
</ul>
<li>...</li>
<li>...</li>
</ul>
答案 0 :(得分:3)
我建议:
var text = $.trim($('#item_1').contents().filter(function(){
return this.nodeType === 3;
}).text());
或者:
var text = $('#item_1').map(function(){
return $.trim(this.firstChild.nodeValue);
}).get().toString();
没有jQuery:
var text = document.querySelector('#item_1').firstChild.nodeValue.trim();
参考文献:
$.trim()
。contents()
。filter()
。get()
。map()
。答案 1 :(得分:2)
使用contents()并找到第一个文本节点:
$("#item_1").contents().filter(function() {
return this.nodeType === 3;
}).first();
或者,如果你知道它将成为该节点中的第一个元素,那么只需数组中的第一个元素:
var text = $("#item_1").contents()[0];
答案 2 :(得分:1)
答案 3 :(得分:0)
另一种选择:
$('#item_1').clone().find('*').remove().end().text()
虽然这会发现所有文本都不在子元素中,而不仅仅是第一个。看到它在this fiddle
中工作