スパンが「初心者」の場合は 1 つの色になり、スパンが「クラブ スタッフ」の場合は別の色になるようにするにはどうすればよいでしょうか?
<span class="usertitle">Newbie</span>
<span class="usertitle">Club Staff</span>
スパンが「初心者」の場合は 1 つの色になり、スパンが「クラブ スタッフ」の場合は別の色になるようにするにはどうすればよいでしょうか?
<span class="usertitle">Newbie</span>
<span class="usertitle">Club Staff</span>
$(document).ready(function() {
$('.usertitle').each(function() {
if ($(this).html() == "Newbie") $(this).css("color","blue");
else if ($(this).html() == "Club Staff") $(this).css("color", "red");
});
});
私はCSSクラスを使用し、addClass()
$('.usertitle').each(function(){
var t = $(this),
text = $.trim(t.text())
t.addClass(
text === 'Newbie' && 'green' ||
text === 'Club Staff' && 'red' ||
!text && 'default'
)
})
js 大文字と小文字を区別:
$('span.usertitle:contains('Newbie')').addClass('newbieColor');
$('span.usertitle:contains('Club Staff')').addClass('clubStaffColor');
js 大文字と小文字を区別しない:
$('span.usertitle').html(function() {
var text = $(this).text().toLowerCase();
if(text === 'newbie') {
$(this).addClass('newbieColor');
} else if(text === 'club staff') {
$(this).addClass('clubStaffColor');
}
});
css :
.newbieColor {
color: yellow;
}
.clubStaffColor {
color: red
}
本当にコンテンツから作業したい場合:
$(".usertitle").each(function() {
var $this = $(this);
var color;
switch ($.trim($this.text())) {
case "Newbie":
color = "green"; // For instance
break;
case "Club Staff":
color = "red"; // For instance
break;
}
if (color) {
$this.css("color", color);
}
});
編集で更新されたマークアップはそうではありません。$.trim
マークアップには、スパン内の単語の両側に空白が含まれている可能性があるため、ここで他の回答から奇妙なことに欠落しているの使用に注意してください。$.trim
しかし、あまり費用がかからず、物事がよりデリケートにならないので、私はまだ使用します.
(または、もちろん、 ではなくcss
を使用addClass
して、スタイルシートを介してプレゼンテーションを制御できるようにします。)
しかし、可能であれば、コンテンツ以外の何かから作業する方法を見つけようとしています.
または、よりコンパクトかつ宣言的に:
var colors = {
"Newbie": "green",
"Club Staff": "red"
};
$(".usertitle").each(function() {
var $this = $(this);
var color = colors[$.trim($this.text())];
if (color) {
$this.css("color", color);
}
});
繰り返しますが、ではなくcss
、classes
table ではなくcolors
table を使用addClass
して を使用すると、スタイルシートを介してプレゼンテーションを制御できます。たとえば、次のようになります。
var classes = {
"Newbie": "newbie",
"Club Staff": "club-staff"
};
$(".usertitle").each(function() {
var $this = $(this);
var cls = classes[$.trim($this.text())];
if (cls) {
$this.addClass(cls);
}
});