2015-09-11 34 views
0

如何只更改点击div项的颜色?

$(function(){ 
 
    $("#title div").on("click", function(){ 
 
     $(this).parent().css("color", "#000000"); 
 
     $(this).css("color", "red"); 
 
    }); 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="title"> 
 
     <div class="book-title lv1">A</div> 
 
     <div class="book-title lv1">B</div> 
 
     <div class="book-title lv1">C</div> 
 
     <div class="book-title lv1">D</div> 
 
</div>

我所要做的是设定上点击项目的红色,让别人颜色为黑色每次。

我该如何更改我的代码来做到这一点?

+0

我有一个css只有解决方案,如果没有必要的javascript – cocoa

回答

1

试试这个:

$(function(){ 
 
    $("#title div").on("click", function(){ 
 
     $(this).siblings().css("color", "#000000"); 
 
     $(this).css("color", "red"); 
 
    }); 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="title"> 
 
     <div class="book-title lv1">A</div> 
 
     <div class="book-title lv1">B</div> 
 
     <div class="book-title lv1">C</div> 
 
     <div class="book-title lv1">D</div> 
 
</div>

+0

非常感谢,plash。但为什么.parent()不起作用? – Dreams

+0

@aBloomer:这是因为'.parent()'只会为其内部的任何文本节点设置颜色,但父项内没有文本节点。文本节点存在于父项的子项中或基本上是所单击的div的兄弟元素。我希望这是有道理的。 –

0

可以使孩子黑,然后上色等一个红。

$(function(){ 
    $("#title div").on("click", function(){ 
     $(this).parent().children('div').css("color", "#000000"); 
     $(this).css("color", "red"); 
    }); 
    }) 
1

在我看来,正确的做法是有一个类.selected

然后执行以下操作:

 


    $(function(){ 
     $("#title div").on("click", function(){ 
      $(".selected").removeClass("selected"); 
      $(this).addClass("selected"); 
     }); 
     }) 


0

你也可以试试这个

$(function(){ 
$("#title div").on("click", function(){ 
    $(".book-title").css("color", "#000000"); 
    $(this).css("color", "red"); 
}); 
});