0

为什么只有名字在变颜色,而年龄却没有变?

<div id="user">
<?php echo $user_name; ?>
<span class="age"><?php echo $user_age; ?></span>
</div>

用户名 color chang 有效,但跨度内的年龄无效。

$(document).ready(function(){
$('#user').css('color','red');
$('#user#age').css('color','gray');  
});
4

6 回答 6

3

试试这个

$('#user .age').css('color','gray'); 

你有一个类“年龄”,选择器应该以“。”开头 它在#user 内部,所以你需要#user 和 .age 之间的空间。

于 2012-04-18T21:07:12.207 回答
2

您在应该使用 class 的地方使用 id

$('#user#age') // looks for something like <div id="user age"></div> which is invalid

应该

$('#user .age') // looks for <div class="age"></div> inside <div id="user"></div>

没有任何空格,它会在同一个元素上查找多个属性。使用空格,它会在其他元素中查找具有 last 属性的元素。您还可以使用逗号来查找具有一个或另一个属性的元素

$('#user, .age') // targets both <div id="user"></div> and <div class="age"></div>
于 2012-04-18T21:08:08.463 回答
2

#user#age将匹配id同时具有user和的元素age。这显然是不可能的,因为元素不能有 2id秒。如果要匹配 a.age内的 a #user,则需要在它们之间放置一个空格。

此外,age是一个类而不是一个id. 类使用.和不使用#.

将所有这些加起来,您的选择器应该是:

#user .age

于 2012-04-18T21:10:50.673 回答
1

因为它是一个类,所以使用点来选择

$(function(){
  $('#user .age').css('color','gray');  
});

这是工作示例:http: //jsfiddle.net/35G5j/1/

#用于选择 ID

.用于选择 css 类

于 2012-04-18T21:08:34.727 回答
1

因为在您的定义age中是class,而不是ID,您可以这样做:

$(document).ready(function(){
    $('#user').css('color','red');
    $('.age').css('color','gray');  
});

那应该行得通。

于 2012-04-18T21:09:26.670 回答
0

因为年龄是一个类的名称而不是 id 所以你不能使用 #Have to use 。

于 2012-04-18T21:12:03.580 回答