使用下面的示例標記:如何通過jQuery獲取第一個dom元素或文本字符串?
<ul>
<li><div>Hello</div>World</li>
<li>Hello World
<ul>
<li style="voice-family: dizzy">What a wonderful world</li>
</ul>
</li>
<li><a href="hello.html">Hello World</a>
<ul>
<li>Goodbye world</li>
</ul>
</li>
</ul>
我試圖創建一個jQuery選擇將抓住每一個頂級LI是不是一個div的第一要素,但也可以是任意其他的DOM元素或文本字符串。
因此,運行它針對上述情況,我想返回3個元素:
- 世界
- 的Hello World
<a href="hello.html">Hello World</a>
假設我已經創建了一個選擇器抓住每一個頂級的LI(我們稱之爲$ topLevelLIs)我想出了這個:
$topLevelLIs.find("*:first:not(div)")
唉,你可能會看到,只會返回一個dom元素,因此,只會在選項#3中找到一些東西。前兩個只是空的返回。
有沒有辦法做到「抓住第一個DOM元素或抓住第一個文本字符串在下一個DOM元素之前」的邏輯?
SOLUTION:
感謝拉斯和馬克的幫助下,我結束了使用這最終得到節點的類型,然後我可以在充當:
$topLevelLIs.contents(":not(div)")
.filter(function(index) {
return index == 0
}).get(0).nodeType
謝謝,拉斯。這是非常有幫助和徹底的。一定會派上用場! – 2009-12-31 19:23:02