2015-04-16 70 views
1

我試圖讓第一<li>id其中的類名my_class是否存在以及<span>Time包含「:」使用jQuery找到類和過濾結果的ID。由另一個類

這裏是我的HTML:

<ul class="list"> 
    <li id="myID-1" class=""> 
     <span class="Time">00h : 10m</span> 
    </li> 
    <li id="myID-2" class="my_class"> 
     <span class="Time">01h : 08m</span> 
    </li> 
    <li id="myID-3" class="my_class"> 
     <span class="Time">waiting</span>          
    </li> 
</ul> 

的Javascript:

var ID = $(".my_class").attr("id"); 

但如何篩選Time類?

有人可以幫我解決這個問題嗎?

回答

4
$(".my_class:has(.Time:contains(:))").attr("id"); 

的jsfiddle:http://jsfiddle.net/TrueBlueAussie/bnp2n0t0/

+1

失蹤'。時間:包含(:)':* 「如果跨類 '時間' 包含(:)」 *。 –

+1

給我第二個...用JSFiddle完成:) –

+0

太好了!它的工作原理,謝謝:) – 3HM

1

嘗試

$(".my_class").find("span.Time:contains(':')").parent().attr("id"); 

Fiddle

+0

缺少':第一''選擇器.. –

+0

@Brijesh Bhatt:'attr'總是返回第一個匹配的結果,所以':第一個'不需要 –

+0

@TrueBlueAussie好吧,明白了.. –

0

您可以使用此代碼。

$(".my_class").each(function(){ 
if($(this).child().hasClass("Time").text().indexOf(':') > -1) 
{ 
    var Id = $(this).attr("id"); 
} 
}); 

感謝,哈亞特S.

+0

jQuery通常不需要'each'(這在大多數情況下應該避免爲它效率較低)。你的例子也會用'.Time'代替所有的div,而不是第一個。 –

+0

是的,沒錯。感謝評論。 –