标记:
<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-blank:
<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>
这就是我想要做的事情: 我在商店类别的第2天举办了活动。
var cat = 'shop';
var day = '2';
$(".day").find("span:contains('" + day + "') > .icon-" + cat).removeClass('icon-blank');
上面的代码我试图选择正确的日div(带有文本“2”的跨度的那一天,然后在那一天选择div .icon-shop。如果这在任何情况下都有意义lol。谢谢为了你的帮助!
答案 0 :(得分: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');