2013-07-24 5 views
3

Используя только чистый JavaScript:Изменение цвета строки на клик

Как я могу нажать на определенную строку таблицы, а также изменить цвет фона выбранной строки (в данном примере, позволяет использовать красный цвет) ,

Затем, если повторная выбранная ранее строка снова нажата, измените ее цвет фона на значение по умолчанию (белый).

Вот мой HTML:

<!DOCTYPE html> 

<html> 

<head> 

<meta http-equiv="Content-Language" content="en-ca"> 

</head> 

<body> 

<table border="1" cellspacing="1" width="100%" id="table1"> 
    <tr> 
     <th>Column1</th> 
     <th>Column2</th> 
     <th>Column3</th> 
     <th>Column4</th> 
     <th>Column5</th> 
    </tr> 
    <tr> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
    </tr> 
    <tr> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
    </tr> 
    <tr> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
    </tr> 
    <tr> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
     <td>data</td> 
    </tr> 
</table> 

</body> 

</html> 
+1

С "чистого JavaScript" вы имеете в виду, что вы не можете использовать дополнительные библиотеки, как JQuery ? Если да, то почему? – jsalonen

+3

Пожалуйста, добавьте часть JavaScript, над которой вы работаете, чтобы кто-то мог ее улучшить. – insertusernamehere

+5

Простой пример: http://jsfiddle.net/5YYsL/ – Ian

ответ

5
$(document).ready(function() { 
    $('tr').click(function() { 
     //Check to see if background color is set or if it's set to white. 
     if(this.style.background == "" || this.style.background =="white") { 
      $(this).css('background', 'red'); 
     } 
     else { 
      $(this).css('background', 'white'); 
     } 
    }); 
}); 

jsFiddle Example

3

что-то вроде этого на вашем ТРЕ будет работать ..

<tr onclick="this.style.backgroundColor='red'"> 

EDIT: не читал ваш вопрос правильно ..

это будет работы:

<script> 
    function changeColor(o){ 
     o.style.backgroundColor=(o.style.backgroundColor=='red')?('transparent'):('red'); 
    } 
</script> 

и на вашем Tr:

<tr onclick="changeColor(this)"> 
+0

не уверен, почему голосующий голос здесь. Jsfiddle http://jsfiddle.net/kYjz7/ –

-1

использование JQuery и увидеть, например, на http://jsfiddle.net/X2pJN/

$('table tr').each(function(a,b){ 
    $(b).click(function(){ 
     $('table tr').css('background','#ffffff'); 
     $(this).css('background','#ff0000'); 
    }); 
}); 
+0

NP, но jQuery IS чистый javascript. –

Смежные вопросы