Я делаю это, чтобы применить некоторый стиль к классической таблице (классическая таблица = tr
с только th
или td
в ней.
$('table').css({
'border-collapse': 'collapse',
'margin': 'auto'
})
.attr({ 'cellpadding': '5px' })
.find('tr')
.css({
'border-left': '1px solid black',
'border-right':'1px solid black'
})
.find('th')
.parent()
.css({
'border':'1px solid rgb(50,170,180)',
'border-left': '10px solid rgb(0,120,130)',
'border-right':'10px solid rgb(0,120,130)',
'font-size': '2em'
});
Единственная проблема заключается в том, что этот код находится в функции " refresh()
". Поэтому, когда он вызывал, если в таблице ничего не изменилось, все еще есть "мерцание", потому что стиль, который он применяет первым, находится во всех " tr
", тогда, только после этого, измените его на tr
которые содержат th
(через parent()
), чтобы показать им "больше".
Другими словами: tr
, которые содержат th
клетки имеют большой дисплей. Я хочу, чтобы он не мерцал.
Как бы вы это сделали?
Решение, которое я придумал, это:
/* select tr that contain only th and not td */
el.find("tr:has(th):not(:has(td))").css({
'border':'1px solid rgb(50,170,180)',
'border-left': '10px solid rgb(0,120,130)',
'border-right':'10px solid rgb(0,120,130)',
'font-size': '2em'
});
/* select tr that contain only td and not th */
el.find("tr:has(td):not(:has(th))").css({
'font-size': '1.4em'
});
Вы должны использовать CSS для этих стилей, а затем jQuery .addClass
чтобы динамически применять их к элементам, если это необходимо..