私は、クラスと一致するリンクとテーブル行を持っています。リンクをクリックすると、同じクラスの行の背景色を変更したいと思います。それぞれのケースについて、同じクラスの行が1つしかありません。同じクラスのすべての要素の背景色を変更します
ここに私の現在の機能があります。ここ
<script type="text/javascript">
function check(x) {
elements = document.getElementsByClassName(x);
for (var i = 0; i < elements.length; i++) {
elements[i].bgColor="blue";
}
}
</script>
は、テーブルの行のスクリプトの一部である:
<tr class="alt1 12">
<td width="50" height="55">
<img src="iPhone/statusicon/12.png" alt="" id="forum_statusicon_12" border="0"></td>
<td>
<div class="forumtitle">
<a class="forumtitle 12" href="forumdisplay.php?f=12" action="async" onclick="check(this.className.split(' ')[1])">News and Current Events</a></div>
</td>
<td width="25">
<div class="forumarrow"><img src="iPhone/chevron.png" alt="" border="0"></div>
</td>
</tr>
表の行は、2つのクラスがあり、私がアドレス指定されるものであることが第1(番号)が必要。
$(".button").click(function(){
var class = $(this).attr("data-class");
var color = $(this).attr("data-color");
$("."+class).css("background-color",color);
});
.button
は、変更したいクラスのdata-class
を追加し、ボタンに適用するクラスです:現在のコードは
これは私にとってはるかに最善の方法です。奇妙なid/classの組み合わせを保存する理由はなく、jQueryは非常に単純な操作のために残忍です。 – Bubbles
申し訳ありませんが、誤って間違ったコードを投稿しました。ただ1つの最終的な質問...私は各行に2つのクラスが割り当てられていることに気付きました...スクリプトは自動的に最初のものを割り当て、この広告はスペースで区切られた別のものを割り当てます。このような状況にどう対処することができますか?私はいつもこの関数に2番目のクラスを送りたいと思っています。 –
ただ '' 'this.className'''を' '' this.className.split( '')[1] '' 'に置き換えてください – drinchev