私の最初の質問。また、私の英語は私が良いと表現できるものであるため、寛容にしてください(より良い言葉はわかりません:))。
私はphpを使用して、異なるスタイルのテーブル行を生成しています。
if ($n % 2 == 0)
$tr_class = ' class="package_' . $p->package_id . ' alt"';
else {
$tr_class = ' class="package_' . $p->package_id . '"';
}
<tr<?php echo $tr_class ?>
クラスがある各行の5番目のセルで入力フィールドを選択しpackage_{number here}
、それにいくつかのスタイルを追加したいと思います。そうするために、私はそのステートメントを使用します:
$('tr.package_' + package_errors_ids[i] + ' td:nth-child(5) input[type=text]').css('border', '1px solid red');
しかし、2番目のクラス(.alt
)ではこれを行うことができません。そのステートメントを変更する方法がわかりませんが、これを実現します。手伝ってくれませんか?:)
書くのを忘れました。それは動作しますが、毎回ではありません。Package_errors_idsは、ユーザーの無効なパッケージを区別するための一意のIDを作成するために使用する番号を含む配列です。2つの行が無効な場合(1つは.altクラスを持っている)、両方がこのコードの影響を受けますcss('border', '1px solid red');
。ただし、1つが有効な場合、これらの行のいずれも影響を受けません。
編集:JavaScript配列を使用せずにコードを生成するために、jsとphpの混合コードを簡略化しました http://jsfiddle.net/TAdsT/7/
この単純化とWebブラウザーのキャッシュのクリアの後、正しく機能します。ご意見ありがとうございました。コードは次のとおりです(jsfindle.netがそれを消去する場合):
<script type="text/javascript">
$(document).ready(function() {
<?php
$count = count($this->package_errors_ids);
if ($count > 0)
{
for ($i = 0; $i < $count; $i++)
{
echo "$('tr.package_" .
(int) $this->package_errors_ids[$i] .
" td:nth-child(5) input[type=\"text\"]').css('border', '1px solid red');\n";
}
}
?>
});
</script>