2015-08-22 4 views
0

У меня есть таблица с четырьмя столбцами и двумя строками, у 4-го столбца есть кнопка для каждой строки, теперь я хочу изменить цвет фона во втором столбце второй строки, щелкнув по кнопке для каждой строки. Пожалуйста, дайте мне знать, как это сделать?Как установить цвет фона для каждого столбца в таблице?

Здесь я разместил свой код для справки.

$(function(){ 
    $('input').click(function(){ 
     $('table').find('tr td:eq(1)').css('background-color', 'red'); 
    }); 
}); 

HTML

<table border="1" style="border-collapse:collapse;"> 
    <tr> 
     <td>1</td> 
     <td>jai</td> 
     <td>description</td> 
     <td><input type="button" value="button"></input></td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>sul</td> 
     <td>description</td> 
     <td><input type="button" value="button"></input></td> 
    </tr> 
</table> 
+0

Взгляните на этот вопрос: http://stackoverflow.com/questions/21859352/change-background-color-for-a-specific-column-in-a-html-table?rq=1 –

ответ

4

Найдите tr, содержащий кнопку с помощью closest(), а затем найти вторую колонку, используя которые

$(function() { 
 
    $('input').click(function() { 
 
    $(this).closest('tr').find('td:eq(1)').css('background-color', 'red'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<table border="1" style="border-collapse:collapse;"> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>jai</td> 
 
    <td>description</td> 
 
    <td> 
 
     <input type="button" value="button"></input> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>sul</td> 
 
    <td>description</td> 
 
    <td> 
 
     <input type="button" value="button"></input> 
 
    </td> 
 
    </tr> 
 
</table>

+0

Это работа, спасибо. – ajai

+0

@ajai: рад помочь :) –

1

Вам не нужно использовать тяжелый JavaScript/JQuery для этого случая. Вместо этого вы можете использовать <col>:

<table border="1" style="border-collapse:collapse;"> 
 
    <col style="background-color: #f00;" /> 
 
    <col style="background-color: #0f0;" /> 
 
    <col style="background-color: #00f;" /> 
 
    <col style="" /> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>jai</td> 
 
    <td>description</td> 
 
    <td><input type="button" value="button" /></td> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>sul</td> 
 
    <td>description</td> 
 
    <td><input type="button" value="button" /></td> 
 
    </tr> 
 
</table>

Также обратите внимание, что у вас нет </input>, которые могут потерпеть неудачу некоторый код (например, синтаксические маркеры.).

+0

@Michael_B Да, я уже говорил об этом. Не так ли? –

0

Попробуйте это,

Если вы знаете родителя() в JQuery затем вы также можете попробовать это,

$(function() { 
    $('input').click(function() { 
    $(this).parent().parent().find('td:eq(1)').css('background-color', 'red'); 
    }); 
}); 

"$ (this) .parent(). Parent(). Find ('td: eq (1)')" В этой строке js он дважды переместится в свой родительский тег, значит щелчок на $ (this) и от него он дважды переместится в свой родительский тег, чтобы добраться до своего тега, и с этой позиции он найдет td в позиции 1. С этого момента вы можете выполнять операцию изменения цвета, как показано в приведенном выше js-коде.

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