jQuery addClass не работает
Я пытаюсь использовать addClass, чтобы дать мне таблицы в полоску зебры на моем шаблоне Joomla. Im используя следующий код:
<script>
jQuery(function($) {
$("tr:odd").addClass("odd");
});
</script>
я смог использовать селектор tr:odd для динамического добавления css в строки таблицы, но когда я использую функцию addClass, она просто не работает (я проверил исходный код, и ни одна из строк таблицы не имеет класса "odd").
понятия не имею, что я могу делать неправильно, был бы признателен за любую помощь.
5 ответов
Итак, вы знаете, изменения в DOM с Javascript не отражаются при просмотре источника.
этот код должен работать, если ваш CSS выглядит так...
tr.odd td
{
background:#070;
}
вот два способа / метода для создания полосатой зебры, один способ с помощью jQuery и один способ с помощью CSS3.
Первый метод-использование jQuery
HTML-код
чтобы создать "полосатую" таблицу, нам нужно создать таблицу с идентификатором для ее идентификации и применить стиль только к этой таблице, в этом примере мы назовем ее "zebra_triped"
<table id="zebra_triped" cellpadding="1" cellspacing="1" >
<tr>
<td>Lorem ipsum dolor sit amet</td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
<tr>
<td>Lorem ipsum dolor sit amet</td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
<tr>
<td>Lorem ipsum dolor sit amet</td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
<tr>
<td>Lorem ipsum dolor sit amet</td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
<tr>
<td>Lorem ipsum dolor sit amet</td>
<td>Lorem ipsum dolor sit amet</td>
</tr>
</table>
в CSS
мы создаем стиль для четных строк, а другой для нечетных строк.
<style type="text/css">
html, body { font: 12px verdana; color: #333; }
table { background-color: white; width: 100%; }
.oddRow { background-color:#ffcc00; }
.evenRow { background-color:#cccccc; }
</style>
jQuery
наконец, нам нужно создать код jQuery, который добавит классы CSS в теги tr, это достигается с помощью этого кода:
<script type="text/javascript">
$(document).ready(function() {
$("#stripedTable tr:odd").addClass("oddRow");
$("#stripedTable tr:even").addClass("evenRow");
});
</script>
первая строка выбирает нечетные теги tr внутри элемента с идентификатором zebra_triped и добавляет им класс "oddRow", последняя строка делает то же самое с четными строками, добавляя им класс"evenRow".
Второй метод-использование CSS
** мой любимый :)*
HTML-код
<div id="comments">
<h3>Comments</h3>
<div class="comments_body">
<header>By: <a href="#"> Lorem ipsum </a></header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,.</p>
</div>
<div class="comments_body">
<header>By: <a href="#"> Lorem ipsum </a></header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, </p>
</div>
<div class="comments_body">
<header>By: <a href="#"> Lorem ipsum </a></header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, </p>
</div>
<div class="comments_body">
<header>By: <a href="#"> Lorem ipsum </a></header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, </p>
</div>
<div class="comments_body">
<header>By: <a href="#"> Lorem ipsum </a></header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, </p>
</div>
</div>
в CSS
<style type="text/css">
html, body { font: 12px verdana; color: #333; }
table { background-color: white; width: 100%; }
#comments { margin-top: 21px; padding-top: 10px; border-top: 1px solid #d7d7d7; }
#comments .comments_body { display: table; padding: 10px; }
#comments .comments_body:nth-child(odd) {
padding: 21px;
background: #E3E3E3;
border: 1px solid #d7d7d7;
-moz-border-radius: 11px; // support FireFox which runs on Mozilla engine
-webkit-border-radius: 11px; // support Safari and Chrome which they run on WebKit engine
// as usual IE is behind and no support for it yet, unless you need to hack it using Java Script.
}
</style>
-МОЗ - border-radius: 11px; и -в WebKit-границы-радиус: 11px; Здесь я определяю радиус / круглый угол для границы контейнера для каждого угла. Это только одна строка, указывающая свойство radius для всех углов, но я могу указать конкретный угол, как показано ниже:
- moz -border-radius-bottomleft:11px;
- moz -border-radius-bottomright:11px;
- moz -border-radius-topleft:11px;
- moz -border-radius-topright:11px;
и
- webkit -border-radius-bottomleft:11px;
- webkit -border-radius-bottomright:11px;
- webkit -border-radius-topleft:11px;
- webkit -border-radius-topright:11px;
надеюсь, это поможет,
Ахмед
jQuery не изменяет исходный код HTML-документа, он изменяет структуру DOM (представление документа в памяти). Чтобы увидеть эти изменения, вы должны использовать плагин браузера, который показывает DOM документа (Firebug для Firefox, Developers Tools (F12) для IE).
$('table tr').each(function() {
if ($(this).find('td').eq(6).text() === 'Start') {
$(this).addClass('tooltip');
}
});