2010-06-14 64 views
0

標記:jQuery的選擇基於文本的DIV元素中的跨度

<div class="day"> 
     <span>1</span> 
     <div class="icon-shop icon-blank"><p class="event-details" id="shop-1"></p></div> 
     <div class="icon-eat icon-blank"><p class="event-details" id="eat-1"></p></div> 
     <div class="icon-fun icon-blank"><p class="event-details" id="fun-1"></p></div> 
     <div class="icon-scoop icon-blank"><p class="event-details" id="scoop-1"></p></div> 
</div> 
<div class="day"> 
     <span>2</span> 
     <div class="icon-shop icon-blank"><p class="event-details" id="shop-2"></p></div> 
     <div class="icon-eat icon-blank"><p class="event-details" id="eat-2"></p></div> 
     <div class="icon-fun icon-blank"><p class="event-details" id="fun-2"></p></div> 
     <div class="icon-scoop icon-blank"><p class="event-details" id="scoop-2"></p></div> 
</div> 

這是一個日曆,我在事件數據拉動。

舉個例子:如果一個事件是在店鋪類別2天,然後我需要從刪除類.icon空白:

<div class="icon-shop icon-blank"><p class="event-details" id="shop-2"></p></div> 

需求,成爲

<div class="icon-shop"><p class="event-details" id="shop-2"></p></div> 

這是什麼即時通訊設法: 我在第二天在商店類別的事件。

var cat = 'shop'; 
var day = '2'; 

    $(".day").find("span:contains('" + day + "') > .icon-" + cat).removeClass('icon-blank'); 

上面我想選擇合適的天格(與文本「2」,然後選擇一天之內DIV .icon店跨度的一天。如果這使得在任何意義上的代碼!所有的笑感謝您的幫助

回答

1

不要使用:contains(),因爲12包含2,也最好寫小的濾波:!

var cat = 'shop'; 
var day = '2'; 

$("div.day span").filter(function() { 
    return $.trim($(this).text()) == day; 
}).parent("div").find("div.icon-"+cat).removeClass('icon-blank'); 
+0

真棒謝謝你的sooo多少大碼 – Fostah 2010-06-14 20:27:46

+0

@Fostah:不用謝。 :-) – Tomalak 2010-06-14 20:50:07