2010-06-14 97 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