2010-05-24 29 views
5

tôi có hai bảng. <table id='1'></table><table id='2'></table>. Khi tôi đặt mã này:Các màu hàng của bảng thay thế jQuery cho một bảng cụ thể

$(document).ready(function() 
{ 
    //for table row 
    $("tr:even").css("background-color", "#F4F4F8"); 
    $("tr:odd").css("background-color", "#EFF1F1"); 

}); 

Cả hai bảng đã nhận nó màu sắc hàng thay thế, mà tôi không muốn, tôi muốn chỉ để tô màu bảng với id = 2. làm thế nào nó có thể được thực hiện?

Trả lời

15

Sửa đổi mã của bạn như:

$(document).ready(function() 
{ 
    $("table#id2 tr:even").css("background-color", "#F4F4F8"); 
    $("table#id2 tr:odd").css("background-color", "#EFF1F1"); 
}); 

này giả sử bạn có bảng với id thiết lập để id2 ví dụ:

<table id="id2"> 
+0

sử dụng các ID như vậy không được phép trong HTML và IE không nhận ra nó. – nickf

+0

việc sử dụng bộ chọn phần tử có bộ chọn ID là công việc phụ trên công cụ chọn (và trình duyệt cho css) - các phần tử chỉ nên được chỉ định cho tên lớp, chẳng hạn như '# id1 tr.myCoolEvenClass'. (trong ví dụ trên # id1 đã trỏ đến bảng, vì vậy không cần phải nói 'nhìn vào tất cả các bảng và tìm # id1) –

+0

@nickf: Yup tôi biết điều đó nhưng tôi chỉ mở rộng ví dụ của mình mặc dù tôi nên có đề xuất không sử dụng số nguyên như id. Thanks – Sarfraz

10

Điều đầu tiên là it's not allowed to have an id starting with a number. Thay đổi bảng để có id cái gì đó như thế này:

<table id="table1"></table> 

Sau đó, tất cả các bạn cần làm là thêm quyền selector thành jQuery của bạn:

$("#table2 tr:even").css(...); 
$("#table2 tr:odd").css(...); 
1
Pass your table Id as parameter: 


settingTableRowColor('tableid'); 

var settingTableRowColor = function(tableName){ 
    $('#'+tableName+' tr:odd').attr('class','odd'); 
    $('#'+tableName+' tr:even').attr('class','even'); 
} 
+0

TypeError: settingTableRowColor không phải là hàm bạn phải khai báo hàm trước. – JuanFernandoz

0
$("#tab1 tr:odd").css('background-color', 'red'); 

cũng làm việc

Các vấn đề liên quan