2012-02-15 20 views
0

我的HTML看起来像:改变DIV

<div class="cal_wrapper_top" id="event-1"> 
    <div class="cal_date"> 
     Feb 18 
    </div> 

    <div class="cal_events"> 
     Jack Johnson 
    </div> 
</div> 
<div class="cal_wrapper" id="event-2"> 
    <div class="cal_date"> 
     Feb 19 
    </div> 

    <div class="cal_events"> 
     Jason Mraz 
    </div> 
</div> 

当你徘徊要么事件1或事件2,我想使用id =日起这个div来进行加粗。

是否可以选择这个特定的div?

+4

ID应该是唯一的。您不能在同一个文档中多次重复使用一个ID。改为使用类名称。 – 2012-02-15 21:26:49

+0

总是忘记这一点。即使如此,是否有可能只从此更新类cal_date? – Mike 2012-02-15 21:29:27

回答

3

你可以用纯CSS做到这一点:http://jsfiddle.net/skimberk1/r645t/

或者你也可以使用jQuery做到这一点(虽然我不知道你为什么会想):http://jsfiddle.net/skimberk1/5wsPq/

此外,您还可以使用一次ID,一次。

编辑:这里是改变悬停文字的例子:http://jsfiddle.net/skimberk1/qwSun/

+0

我打算推荐一个JavaScript解决方案,但是你发布了这个。干得好,你有我的+1。 – 2012-02-15 21:31:44

+0

不错的解决方案!如果我想将div的内容更改为日期以外的任何想法? – Mike 2012-02-15 21:33:08

+0

@Truth哈哈,很好的编辑。 – skimberk1 2012-02-15 21:34:14

0

肯定:

$('div.cal_wrapper, div.cal_wrapper_top').hover(function() { 
    $(this).find('div#date').css('font-weight', 'bold'); 
    //$(this).find('div.date').css('font-weight', 'bold'); //if changing to class 
    //$(this).find('div[name="date"]').css('font-weight', 'bold'); //if changing to name 
}, function() { 
    $(this).find('div#date').css('font-weight', 'normal'); 
    //$(this).find('div.date').css('font-weight', 'normal'); //if changing to class 
    //$(this).find('div[name="date"]').css('font-weight', 'normal'); //if changing to name 
});​ 

我将是失职指出属性id应该是唯一的一个元素页。否则就会发生怪癖。

您可能要重做HTML,要么改变id一类:

<div class="cal_wrapper_top" id="event-1"> 
    <div class="cal_date date"> 
     Feb 18 
    </div> 

    <div class="cal_events"> 
     Jack Johnson 
    </div> 
</div> 
<div class="cal_wrapper" id="event-2"> 
    <div class="cal_date date"> 
     Feb 19 
    </div> 

    <div class="cal_events"> 
     Jason Mraz 
    </div> 
</div>​​​ 

或使用name属性改为:

<div class="cal_wrapper_top" id="event-1"> 
    <div class="cal_date" name="date"> 
     Feb 18 
    </div> 

    <div class="cal_events"> 
     Jack Johnson 
    </div> 
</div> 
<div class="cal_wrapper" id="event-2"> 
    <div class="cal_date" name="date"> 
     Feb 19 
    </div> 

    <div class="cal_events"> 
     Jason Mraz 
    </div> 
</div>​​​​​​​ 
+0

这是我的理解,'name'属性只用于形式。 – skimberk1 2012-02-15 21:43:17

+0

'name'属性可以在任何元素上使用(尽管它不一定会在* any *元素上进行验证)。 'title'或'alt'或者一个自定义属性可以很容易地使用。如果这是我的项目,我会使用'class'。 – pete 2012-02-15 21:58:23

+0

我一直在试图说服任何会听取类选择器比现代浏览器中的ID稍慢的人,更重要的是,他们是正确的。 ID随着你的需求变化而停止工作,但类永远都是好的。故事的道德:基准之前做一些奇怪的事情。 – Jason 2012-02-15 22:18:26