如果我有以下代碼:檢測prev()項是否在當前元素之前?
<p>
Suspendisse dictum <span>feugiat</span> nisl ut dapibus. <span>Mauris</span><span> iaculis porttitor</span> posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci.
</p>
你使用下面的代碼:
$("span").click(function(){
alert($(this).prev().text());
});
如果你點擊<span> iaculis porttitor</span>
,它會提醒Mauris
。這是正確的行爲,但我只想檢測prev()
元素是否與當前單擊的元素相鄰。由於<span> iaculis porttitor</span>
的前一個元素是<span>Mauris</span>
,因此這可以正常工作。
但是,如果您點擊<span>Mauris</span>
,它會提醒feugiat
,因爲這是上一個元素的文本。我想要的是,這將返回false,因爲在<span>Mauris</span>
之前沒有元素,只有文本。
這是可能的jQuery?
謝謝,這是有道理的。在我嘗試使用它的設置中,我必須檢測以前的同級選擇的文本是文本節點還是元素節點,但我似乎無法使其工作:http://jsfiddle.net/charlescarver/FLwxj/54 /任何想法,爲什麼這是行不通的? – Charlie 2013-03-07 01:55:09
@Charlie在檢查其節點類型之前檢查前一個兄弟是否存在 – Musa 2013-03-07 02:00:04
我明白,但前一個兄弟存在於我的小提琴中,但它沒有找到previousSibling.nodeType,並且用'TypeError:'undefined'響應不是對象(評估'test.previousSibling.nodeType')'其中'test' ='[ 文本 ]' – Charlie 2013-03-07 02:04:24